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();
        }

  • 相关阅读:
    Linux驱动之异常处理体系结构简析
    Linux驱动之按键驱动编写(查询方式)
    Linux驱动之LED驱动编写
    Linux驱动之建立一个hello模块
    Linux驱动之内核加载模块过程分析
    制作根文件系统之制作根文件系统步骤详解
    制作根文件系统之Busybox init进程的启动过程分析
    制作根文件系统之内核如何启动init进程
    制作根文件系统之内核挂接文件系统步骤分析
    Linux移植之tag参数列表解析过程分析
  • 原文地址:https://www.cnblogs.com/yzenet/p/2590555.html
Copyright © 2011-2022 走看看