Задача 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
.
Предупреждение, однако: для наложения используется только страница содержимое дополнительных документов, все виды аннотаций игнорируются.Также не ожидайте, что теги будут скопированы.