我正在使用旧版本的 iText (2.1.7) 来合并 PDF。因为这是我可以使用的 MPL 下的最后一个版本。我无法改变这一点。
无论如何。我正在尝试合并多个 PDF。一切似乎都正常,但是当我浏览大约 1500 页时,生成的 PDF 无法打开(表现得好像它已损坏)
这就是我的做法:
private byte[] mergePDFs(List<byte[]> pdfBytesList) throws DocumentException, IOException {
Document document = new Document();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PdfCopy copy = new PdfCopy(document, outputStream);
document.open();
for (byte[] pdfByteArray : pdfBytesList) {
ByteArrayInputStream readerStream = new ByteArrayInputStream(pdfByteArray);
PdfReader reader = new PdfReader(readerStream);
for (int i = 0; i < reader.getNumberOfPages(); ) {
copy.addPage(copy.getImportedPage(reader, ++i));
}
copy.freeReader(reader);
reader.close();
}
document.close();
return outputStream.toByteArray();
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?在翻阅一定数量的页面时,是否有任何关于此的提示?没有抛出异常或任何东西。