希亚斯
我们使用 Chunks 和 Phrases 以及 DirectContent 等创建一个 PDF,并带有 PdfWriter(文档组合。到目前为止,这很好用。虽然在某些空间创建了 PDF,但我需要合并来自另一个 PDF 的页面。到目前为止,我是为此,请保留一个文件列表以在实际报告的末尾将这些文件合并并合并在一起(通过关闭该报告,使用PdfCopy重新打开该报告并合并到相应页面的文件中)。
到目前为止,这也很好用,但它有一个主要缺点:如果报告较大(例如 1800 页)并且需要将 1000 个 PDF 合并到该 PDF 中,它会变得非常非常慢。我想这与需要重写主 PDF 的事实有关,因为要合并到主文档中的 PDF 不仅仅是在主报告的末尾简单地合并,而是在内部深处的某个地方,并且这对于其他999个PDF合并。
因此,我考虑加快速度并导入页面,同时我仍在使用 PdfWriter.getImportedPage() 创建报告并将其作为模板添加到 PDF 中。这工作正常,但在阅读“如何不合并文档”(http://developers.itextpdf.com/examples/merging-pdf-documents-itext5/how-not-merge-documents)后,我不太确定了这实际上是一个很好的解决方案。
但是..除了在主报告完成后合并之外,我也真的不知道有什么更好的方法,这真的很慢,要合并数百个 PDF?s。
那么使用 PdfWriter.getImportedPage() 并相应地旋转页面是一个好主意还是一个坏主意?或者有什么我不知道的替代方案?
那么使用 PdfWriter.getImportedPage() 并相应地旋转页面是一个好主意还是一个坏主意?
这取决于。;)
这取决于您的用例中什么是重要的。一般来说:
如果您希望在生成的文档中页面的显示与它们在各自的原始文档中完全一样,则使用PdfCopy
或PdfSmartCopy
,这绝对是更好的选择。
如果您的原始页面有注释(例如 AcroForm 表单字段可视化),您希望在结果文档中也有注释,那么使用PdfCopy
或PdfSmartCopy
,在这种情况下这绝对是更好的选择。
否则使用PdfWriter
andaddTemplate(...getImportedPage(...), ...)
可能是一个可以接受甚至不错的选择。
或者有什么我不知道的替代方案?
可能存在您尚未应用到PdfCopy
解决方案的优化,但是iText 5中没有概念上不同的选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句