如何将 PDF 元素与 Java 合并
How to merge PDF elements with Java
我可以使用 PDFBox(或其他库)将两个 PDF 中的元素合并为最终 PDF 吗?
我不是在寻找页面串联,而是在寻找合并页面元素:
OP 的任务是将两个页面合并为一个页面,使每个对象保持在页面上的当前位置。
为此,PDFBox 提供了 Overlay
class。给定两个 PDDocument
个实例 document1
和 document2
,您可以简单地执行
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页用于叠加,各种注释都被忽略。也不要指望标签会被复制。
我可以使用 PDFBox(或其他库)将两个 PDF 中的元素合并为最终 PDF 吗?
我不是在寻找页面串联,而是在寻找合并页面元素:
OP 的任务是将两个页面合并为一个页面,使每个对象保持在页面上的当前位置。
为此,PDFBox 提供了 Overlay
class。给定两个 PDDocument
个实例 document1
和 document2
,您可以简单地执行
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页用于叠加,各种注释都被忽略。也不要指望标签会被复制。