在OP的任务是两页合并成一个,保持每个对象在页面上的当前位置。
这样做PDFBox的提供Overlay
类。给定两个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
的来源。
一个字的警告,虽然:只有额外的文档的页面内容被用于叠加,各种注释被忽略。当然,别指望标签被复制。