如何将 PDF 元素与 Java 合并

How to merge PDF elements with Java

我可以使用 PDFBox(或其他库)将两个 PDF 中的元素合并为最终 PDF 吗?

我不是在寻找页面串联,而是在寻找合并页面元素:

OP 的任务是将两个页面合并为一个页面,使每个对象保持在页面上的当前位置。

为此,PDFBox 提供了 Overlay class。给定两个 PDDocument 个实例 document1document2,您可以简单地执行

Overlay overlay = new Overlay();
overlay.setOverlayPosition(Overlay.Position.FOREGROUND);
overlay.setInputPDF(document1);
overlay.setAllPagesOverlayPDF(document2);

Map<Integer, String> ovmap = new HashMap<Integer, String>();            
overlay.overlay(ovmap);

document1.save("");

overlay.close();

将第二个文档覆盖在第一个文档上。

但是Overlay可以用于更复杂的叠加任务。特别是它还允许您将特定的 PDF 设置为仅覆盖奇数页、偶数页或仅明确指定的页面。

例如查看 PDFBox 工具的源代码 OverlayPDF


提醒一句,只有多余文档的content页用于叠加,各种注释都被忽略。也不要指望标签会被复制。