Beispiel #1
0
        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);
        }
Beispiel #3
0
        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();
        }