ExpertPdf生成多页pdf文档内容大小不一致的解决办法
2015-11-05 23:41
736 查看
最近做一个物流项目,其中有按模板生成PDF的功能,按ExpertPdf官方的示例,实现方式是这样的:
但是这样子生成的pdf,除第一个内容大小比较符合要求,从第二个开始,前面的配置都没有起到作用,仔细看了一下接口暴露出来的方法,发现下面的方式可以所有的内容大小一致:
即把上面的循环换成下面的循环,用AppendDocument的方式,就能让前面的配置对新的页面也生效!
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的方式,就能让前面的配置对新的页面也生效!
相关文章推荐
- php连接mysql的问题
- Ubuntu 14.04配置vsftpd
- php download断点
- ubuntu 设置ntp服务
- PHP urldecode()与urlencode()函数
- php遍历数据库
- PHP实现简单高精度的求PI方法
- phpmyadmin 配置文件权限错误,无法写入!
- 解决yii框架中,使用参数化查询时,IN只能查询一个的代替方法
- 为什么上传文件的表单需要设置enctype="multipart/form-data"
- PHP中VC6、VC9、TS、NTS版本的区别与用法详解
- ThinkPHP创建应用的一般开发流程及实例
- 使用ThinkPHP框架快速开发网站(多图)
- PHP 获取二维数组中某个key的集合
- PHP快速排序算法
- PHP上传文件的简单例子与说明
- PHP实现投镖求PI法,最笨但最有意思
- PHP面向对象中类方法的两种类型:2、对象类型(获得提示)
- php连接mysql...mysqli和mysql
- 【手记】F5调试报"由于缺少调试目标xxx无法开始调试xxx设置OutputPath和AssemblyName"