使用PDFBox合并Pdf文件
我必须使用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()
。