我必须使用 Apache 的 PdfBox 合并两个 pdf 文件。为此,我使用了物理 pdf 文件。 下面是代码:
PDFMergerUtility ut = new PDFMergerUtility();
ut.addSource(path1);
ut.addSource(path2);
ut.setDestinationFileName(path3);
ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());
文件完美合并,但有如下限制:
- 我在代码本身中创建第一个文件,所以它是 PDDocument 对象。
- 我必须与第一个文件合并的文件是字节数组格式。
- 我不需要保存合并后的文件,但需要将其转换为字节数组。
请任何人帮我实现这个要求。
最佳答案
调用PDFMergerUtility.appendDocument(PDDocument destination, PDDocument source)
而不是合并。要从字节数组加载,请调用 PDDocument.load(array)
。
顺便说一句:我不鼓励合并您自己创建的 PDDocument 对象,如果您有字体子集,这将失败(参见问题 PDFBOX-3243)。最好保存它们(例如在 ByteArrayOutputStream
中)并重新加载然后合并。要从 ByteArrayOutputStream 获取字节数组,请使用 ByteArrayOutputStream.tobytearray()
.
关于java - 使用 PDFBox 合并 Pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37589590/