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

  • 相关阅读:
    python 一
    opengl 正方体+模拟视角旋转
    MFC窗口实现最小化到托盘 右键菜单和还原
    C++获取当前机器内网IP地址
    ubuntu vim终端编辑命令
    整理网站优化(SEO)的方案
    c++函数声明的位置对函数重载的影响
    lua调用dll demo
    一、智能指针及线程同步总结------linux多线程服务端编程
    vscode remote wsl 的NoPermissions permission denied问题
  • 原文地址:https://www.cnblogs.com/yzenet/p/2590555.html
Copyright © 2011-2022 走看看