如何在Java中将两个PDF文件合并为一个?

2022-08-31 12:05:52

我想使用PDFBox将许多PDF文件合并为一个,这就是我所做的:

PDDocument document = new PDDocument();
for (String pdfFile: pdfFiles) {
    PDDocument part = PDDocument.load(pdfFile);
    List<PDPage> list = part.getDocumentCatalog().getAllPages();
    for (PDPage page: list) {
        document.addPage(page);
    }
    part.close();
}
document.save("merged.pdf");
document.close();

其中 是 包含所有 PDF 文件的 。pdfFilesArrayList<String>

当我运行上述内容时,我总是得到:

org.apache.pdfbox.exceptions.COSVisitorException: Bad file descriptor

我做错了什么吗?有没有其他方法可以做到这一点?


答案 1

为什么不使用PDFMergerUtility的pdfbox?

PDFMergerUtility ut = new PDFMergerUtility();
ut.addSource(...);
ut.addSource(...);
ut.addSource(...);
ut.setDestinationFileName(...);
ut.mergeDocuments();

答案 2

快速的Google搜索返回了这个错误:“保存带有导入PDF的文档时文件描述符错误”。

看起来您需要保持要合并的 PDF 处于打开状态,直到保存并关闭合并后的 PDF。


推荐