public static void GenerateRunTimePhysicalImageTesting() { const string physicalImagePath = @"C:\ImageWarehouse"; try { var dirNormal = new DirectoryInfo(physicalImagePath); if (!dirNormal.Exists) { dirNormal.Create(); } var htmlToImageConverter = new HtmlToImage { SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"], BrowserWidth = 570, HtmlLoadedTimeout = 15, TransparentImage = false }; const string snapshotfilePath = physicalImagePath + "/" + "Test.jpg"; var imageObjectSnapshot = htmlToImageConverter.ConvertUrlToImage("file:///C:/ExportFeed/craigslist/index.html")[0]; imageObjectSnapshot.Save(snapshotfilePath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception) { } }
public ActionResult ConvertToImage(FormCollection collection) { m_formCollection = collection; // create the HTML to Image converter HtmlToImage htmlToImageConverter = new HtmlToImage(); // set a demo serial number htmlToImageConverter.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ=="; // set browser width htmlToImageConverter.BrowserWidth = int.Parse(collection["textBoxBrowserWidth"]); // set browser height if specified, otherwise use the default if (collection["textBoxBrowserHeight"].Length > 0) { htmlToImageConverter.BrowserHeight = int.Parse(collection["textBoxBrowserHeight"]); } // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = int.Parse(collection["textBoxLoadHtmlTimeout"]); // set whether the resulted image is transparent (has effect only when the output format is PNG) htmlToImageConverter.TransparentImage = (collection["dropDownListImageFormat"] == "PNG") ? collection["checkBoxTransparentImage"] != null : false; // set triggering mode; for WaitTime mode set the wait time before convert switch (collection["dropDownListTriggeringMode"]) { case "Auto": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; case "WaitTime": htmlToImageConverter.TriggerMode = ConversionTriggerMode.WaitTime; htmlToImageConverter.WaitBeforeConvert = int.Parse(collection["textBoxWaitTime"]); break; case "Manual": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Manual; break; default: htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; } // convert to image System.Drawing.Image imageObject = null; string imageFormatName = collection["dropDownListImageFormat"].ToLower(); string imageFileName = String.Format("HtmlToImage.{0}", imageFormatName); if (collection["UrlOrHtmlCode"] == "radioButtonConvertUrl") { // convert URL string url = collection["textBoxUrl"]; imageObject = htmlToImageConverter.ConvertUrlToImage(url)[0]; } else { // convert HTML code string htmlCode = collection["textBoxHtmlCode"]; string baseUrl = collection["textBoxBaseUrl"]; imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, baseUrl)[0]; } // get the image buffer in the selected image format byte[] imageBuffer = GetImageBuffer(imageObject); // the image object rturned by converter can be disposed imageObject.Dispose(); // inform the browser about the binary data format string mimeType = imageFormatName == "jpg" ? "jpeg" : imageFormatName; FileResult fileResult = new FileContentResult(imageBuffer, "image/" + mimeType); fileResult.FileDownloadName = imageFileName; return(fileResult); }
protected void buttonConvertToImage_Click(object sender, EventArgs e) { // create the HTML to Image converter HtmlToImage htmlToImageConverter = new HtmlToImage(); // set a demo serial number htmlToImageConverter.SerialNumber = "YCgJMTAE-BiwJAhIB-EhlWTlBA-UEBRQFBA-U1FOUVJO-WVlZWQ=="; // set browser width htmlToImageConverter.BrowserWidth = int.Parse(textBoxBrowserWidth.Text); // set browser height if specified, otherwise use the default if (textBoxBrowserHeight.Text.Length > 0) { htmlToImageConverter.BrowserHeight = int.Parse(textBoxBrowserHeight.Text); } // set HTML Load timeout htmlToImageConverter.HtmlLoadedTimeout = int.Parse(textBoxLoadHtmlTimeout.Text); // set whether the resulted image is transparent (has effect only when the output format is PNG) htmlToImageConverter.TransparentImage = (dropDownListImageFormat.SelectedValue == "PNG") ? checkBoxTransparentImage.Checked : false; // set triggering mode; for WaitTime mode set the wait time before convert switch (dropDownListTriggeringMode.SelectedValue) { case "Auto": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; case "WaitTime": htmlToImageConverter.TriggerMode = ConversionTriggerMode.WaitTime; htmlToImageConverter.WaitBeforeConvert = int.Parse(textBoxWaitTime.Text); break; case "Manual": htmlToImageConverter.TriggerMode = ConversionTriggerMode.Manual; break; default: htmlToImageConverter.TriggerMode = ConversionTriggerMode.Auto; break; } // convert to image System.Drawing.Image imageObject = null; string imageFormatName = dropDownListImageFormat.SelectedValue.ToLower(); string imageFileName = String.Format("HtmlToImage.{0}", imageFormatName); if (radioButtonConvertUrl.Checked) { // convert URL string url = textBoxUrl.Text; imageObject = htmlToImageConverter.ConvertUrlToImage(url)[0]; } else { // convert HTML code string htmlCode = textBoxHtmlCode.Text; string baseUrl = textBoxBaseUrl.Text; imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, baseUrl)[0]; } // get the image buffer in the selected image format byte[] imageBuffer = GetImageBuffer(imageObject); // the image object rturned by converter can be disposed imageObject.Dispose(); // inform the browser about the binary data format string mimeType = imageFormatName == "jpg" ? "jpeg" : imageFormatName; HttpContext.Current.Response.AddHeader("Content-Type", "image/" + mimeType); // let the browser know how to open the image and the image name HttpContext.Current.Response.AddHeader("Content-Disposition", String.Format("attachment; filename={0}; size={1}", imageFileName, imageBuffer.Length.ToString())); // write the image buffer to HTTP response HttpContext.Current.Response.BinaryWrite(imageBuffer); // call End() method of HTTP response to stop ASP.NET page processing HttpContext.Current.Response.End(); }