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

  • 相关阅读:
    一个.java文件内只能写一个class吗
    Ubuntu下手动安装NextCloud
    基于 Ubuntu + nextCloud 搭建自己的私人网盘
    Ubuntu系统Apache 2部署SSL证书
    交叉验证与训练集、验证集、测试集
    [LeetCode] Restore IP Addresses
    [LeetCode] Decode Ways
    [LeetCode] Subsets II
    [LeetCode] Gray Code
    vector 的resize 和 reserve
  • 原文地址:https://www.cnblogs.com/yzenet/p/2590555.html
Copyright © 2020-2023  润新知