java - 使用 PDFBox 合并 Pdf 文件

标签 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. 我不需要保存合并后的文件,但需要将其转换为字节数组。

请任何人帮我实现这个要求。

最佳答案

调用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/

相关文章:

java - 无法读取 ZipFile.getInputStream(ZipEntry) 方法返回的 ZipInputStream

java - JAMA setMatrix 文档需要在给定矩阵中设置子矩阵

javascript - Kendo UI Drawing API 导出 PDF 过早拆分 html 表格,在页面上生成无用的空白空间

java - 使用 Itext 从 pdf 检索图像时出错

python - 对两个数字范围进行合并和排序

git - 使用和 merge 外部 Git 存储库的最佳实践

java - 计算图像中的 "redish/blueish/greenish..."种颜色

java - 尝试理解同步方法

c# - 在 asp.net web 表单中使用 c# 将 web 表单内容转换为 PDF

python - 基于另一个数据框 pandas 的匹配值的新列