使用PDFBox合并Pdf文件

时间:2016-06-02 10:43:48

标签: java pdf merge pdfbox

我必须使用Apache的PdfBox合并两个pdf文件。我已经采用了物理pdf文件。 以下是代码:

PDFMergerUtility ut = new PDFMergerUtility();
ut.addSource(path1);
ut.addSource(path2);
ut.setDestinationFileName(path3);
ut.mergeDocuments(MemoryUsageSetting.setupMainMemoryOnly());

文件合并完美但后面有一些约束如下:

  1. 我在代码本身创建了第一个文件,因此它是PDDocument对象。
  2. 我必须与第一个文件合并的文件是字节数组格式。
  3. 我不需要保存合并的文件,但需要将其转换为字节数组。
  4. 请任何人帮助我达到这个要求。

1 个答案:

答案 0 :(得分:5)

调用PDFMergerUtility.appendDocument(PDDocument destination, PDDocument source)而不是合并。要从字节数组加载,请调用PDDocument.load(array)

Btw :我不鼓励合并您自己创建的PDDocument对象,如果您有字体子集,则会失败(请参阅问题PDFBOX-3243)。更好地保存它们(例如在ByteArrayOutputStream中)并重新加载然后合并。要从ByteArrayOutputStream获取字节数组,请使用ByteArrayOutputStream.tobytearray()