zoukankan      html  css  js  c++  java
  • Html 转化为 PDF

    //evohtmltopdf.dll  EvoHtmlToPdfWebDemo.dll evointernal.dll (需添加引用这三个类)

    public void SavePdf()
        {
            PdfConverter pdfConverter = new PdfConverter();

            // 设置的许可证密钥——要求
            pdfConverter.LicenseKey = "ORIJGQoKGQkZCxcJGQoIFwgLFwAAAAA=";

            // 通知转换器的HTML元素,我们想要的位置在PDF
            //在这个示例,我们想要的位置,IMG,H1和H2元素和元素ID
            //等于“id1’或‘id2”

            //pdfConverter.HtmlElementsMappingOptions.HtmlElementSelectors = new string[] { "IMG", "H1", "H2", "#id1", "#id2" };

            // 调用转换器,并得到一个文档对象从URL
            string url = Request.Url.ToString();
           // url = url.Replace("Default.aspx", "preview.aspx");
                  Document pdfDocument = pdfConverter.GetPdfDocumentObjectFromUrl(url); //URL表示地址,你要导那张页面就用那张页面的地址

            // 迭代HTML元素位置和标出每个元素提供了一个绿色的矩形
            foreach (HtmlElementMapping elementMapping in pdfConverter.HtmlElementsMappingOptions.HtmlElementsMappingResult)
            {
                //因为一个HTML元素可以跨越许多PDF页映射
                // HTML元素在PDF文档包含在一个矩形列表,
                //一个矩形对于每个PDF页面,这个元素被呈现
                foreach (HtmlElementPdfRectangle elementLocationInPdf in elementMapping.PdfRectangles)
                {
                    // 把PDF页面
                    PdfPage pdfPage = pdfDocument.Pages[elementLocationInPdf.PageIndex];
                    RectangleF pdfRectangleInPage = elementLocationInPdf.Rectangle;

                    // 创建一个RectangleElement突出显示的HTML元素
                    RectangleElement highlightRectangle = new RectangleElement(pdfRectangleInPage.X, pdfRectangleInPage.Y,
                        pdfRectangleInPage.Width, pdfRectangleInPage.Height);
                    //highlightRectangle.ForeColor = Color.Green;
                    pdfPage.AddElement(highlightRectangle);
                }
            }

            byte[] pdfBytes = null;

            try
            {
                pdfBytes = pdfDocument.Save();
            }
            finally
            {
                // 创建一个RectangleElement突出显示的HTML元素

                pdfDocument.Close();

            }

            // 把PDF文档作为来响应浏览器下载
            System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
            response.Clear();
            response.AddHeader("Content-Type", "application/pdf");
            response.AddHeader("Content-Disposition", String.Format("attachment; filename=HtmlElementsLocation.pdf; size={0}", pdfBytes.Length.ToString()));
            response.BinaryWrite(pdfBytes);
            //注意:重要的是要结束响应,否则asp . net
            // web页面将显示其内容为PDF文档流
            response.End();
        }

  • 相关阅读:
    第一节 麒麟系统安装+基础环境搭建(JDK+Scala)
    launchMode之的几种取值
    [JAVA · 0基础]:16.经常使用类
    hdu 2767 Proving Equivalences 强连通缩点
    一个最简单的示例与简单性能分析
    Opencl API解释(一)
    OpenCL 第10课:kernel,work_item和workgroup
    GPU 的硬件基本概念,Cuda和Opencl名词关系对应
    Ubuntu12.04-64bits搭建FFmpeg环境
    ubuntu64bits环境下搭建Opencl的环境
  • 原文地址:https://www.cnblogs.com/yzenet/p/2590555.html
Copyright © 2011-2022 走看看