Hiyas
我们使用Chunks和Phrases以及DirectContent等创建PDF并使用PdfWriter(文档组合。到目前为止,这可以很好地工作。虽然PDF是在某些空间创建的,但我需要在另一个PDF的页面中合并。到目前为止我通过保留要合并的文件列表并在实际报告的末尾将它们合并在一起来做到这一点(通过关闭该报告,使用PdfCopy重新打开报告并合并到相应页面的文件中)。 / p>
到目前为止,这也很好用,但它有一个主要的缺点:如果报告较大(例如,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合并。
那么使用PdfWriter.getImportedPage()并相应地旋转页面是一个好主意还是一个坏主意?还是有其他我不知道的选择?
答案 0 :(得分:1)
那么使用PdfWriter.getImportedPage()并相应地旋转页面是一个好主意还是一个坏主意?
这取决于。 ;)
这取决于您的用例中的重要内容。一般来说:
如果您在结果文档中希望页面的显示方式与其原始文档中的页面完全相同,那么使用PdfCopy
或PdfSmartCopy
,这肯定会更好选择
如果您的原始网页有注释(例如AcroForm表单字段可视化),您希望在结果文档中也有,那么使用PdfCopy
或PdfSmartCopy
,这肯定是在这种情况下,更好的选择。
否则使用PdfWriter
和addTemplate(...getImportedPage(...), ...)
可能是可以接受的,甚至是不错的选择。
或者有其他我不知道的选择吗?
您可能尚未对PdfCopy
解决方案应用优化,但iText 5中没有概念上不同的选项。