ExpertPdf生成多页pdf文档内容大小不一致的解决办法

1 篇文章 0 订阅

最近做一个物流项目,其中有按模板生成PDF的功能,按ExpertPdf官方的示例,实现方式是这样的:

byte[] pdfBytes = null;
                pdfConverter.PdfDocumentOptions.PdfPageSize = PdfPageSize.A4;
                pdfConverter.PdfDocumentOptions.PdfCompressionLevel = PdfCompressionLevel.Normal;
                pdfConverter.PdfDocumentOptions.PdfPageOrientation = PDFPageOrientation.Portrait;//PDFPageOrientation.Portrait
                pdfConverter.PdfDocumentOptions.EmbedFonts = false;
                pdfConverter.PdfDocumentOptions.ShowFooter = false;
                pdfConverter.PdfDocumentOptions.ShowHeader = false;
                pdfConverter.PdfDocumentOptions.GenerateSelectablePdf = true;
                pdfConverter.PdfDocumentOptions.FitWidth = false;
                pdfConverter.PdfDocumentOptions.EmbedFonts = false;
                pdfConverter.PdfDocumentOptions.LiveUrlsEnabled = true;
                pdfConverter.ScriptsEnabled = true;
                pdfConverter.ActiveXEnabled = true;
                pdfConverter.PdfDocumentOptions.JpegCompressionEnabled = true;
                pdfConverter.PdfBookmarkOptions.TagNames = new string[] { "H1", "H2" };
                Document pdfDoc = pdfConverter.GetPdfDocumentObjectFromHtmlString(htmllist[0], baseURL);

                for (int i = 1; i < htmllist.Count; i++)
                {
                    string html = htmllist[i];
                    HtmlToPdfElement htmlToPdf = null;
                    AddElementResult addResult = null;
                    PdfPage newPage = pdfDoc.Pages.AddNewPage();
                    htmlToPdf = new HtmlToPdfElement(html, baseURL);
                    addResult = newPage.AddElement(htmlToPdf);

                }

但是这样子生成的pdf,除第一个内容大小比较符合要求,从第二个开始,前面的配置都没有起到作用,仔细看了一下接口暴露出来的方法,发现下面的方式可以所有的内容大小一致:

for (int i = 1; i < htmllist.Count; i++)
                {
                    string html = htmllist[i];
                    Document ndoc = pdfConverter.GetPdfDocumentObjectFromHtmlString(html,baseURL);
                    pdfDoc.AppendDocument(ndoc);
                }

即把上面的循环换成下面的循环,用AppendDocument的方式,就能让前面的配置对新的页面也生效!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值