Itext 7.1.6合并文档时内存不足错误
当从多个文档创建collate时,java.lang.OutOfMemoryError:服务器中出现java堆空间错误,应用程序停止运行 下面是一个示例代码片段Itext 7.1.6合并文档时内存不足错误,itext,itext7,Itext,Itext7,当从多个文档创建collate时,java.lang.OutOfMemoryError:服务器中出现java堆空间错误,应用程序停止运行 下面是一个示例代码片段 PdfReader objReader = new PdfReader(new ByteArrayInputStream(content)); PdfDocument srcPdfDocument = new PdfDocument(objReader); Document srcDocument = new Document(srcP
PdfReader objReader = new PdfReader(new ByteArrayInputStream(content));
PdfDocument srcPdfDocument = new PdfDocument(objReader);
Document srcDocument = new Document(srcPdfDocument);
WriterProperties wp = new WriterProperties();
wp.setPdfVersion(PdfVersion.PDF_1_7);
PdfDocument destPdfDoc = new PdfDocument(new PdfWriter(baos,wp));
Document destDocument = new Document(destPdfDoc);
PdfMerger merger = new PdfMerger(destPdfDoc, true,true);
merger.merge(srcPdfDocument, 1, srcPdfDocument.getNumberOfPages());
//finally block
finally{
if(srcPdfDocument != null && !srcPdfDocument.isClosed()) {
srcPdfDocument.close();
}
if(srcDocument != null) {
srcDocument.close();
}
if(destPdfDoc != null && !destPdfDoc.isClosed()) {
destPdfDoc.close();
}
if(destDocument != null) {
destDocument.close();
}
}
如果对其大文档(文件大小以GB为单位)或标记结构损坏的文档进行了整理(服务器日志中的错误-com.itextpdf.kernel.pdf.tagging.ParentTreeHandler损坏的标记结构:遇到无效的标记内容引用-它不引用任何页面或任何mcid。此内容引用将被忽略),抛出内存不足错误
有没有什么方法可以在不将字节保存在内存中的情况下整理文档
使用Itext 7。请注意,使用Itext 5(PdfCopy)功能可以正常工作,不会出现问题。对于大型文档,您很可能需要分配更多内存。关于标记-itext 5是以一种几乎不知道标记的方式复制的,因此知道标记的复印机可能在itext 5没有出现的情况下出现问题。@Sangeetha,请提供一种重现问题的方法。例如,您可以提供代码来生成合并时导致内存问题的源文档。或者,您可以提供一个小文档,并将其多次合并到目标文档中