PDFBox LayerUtility - импорт слоев в существующий PDF

Я использую pdfbox для управления содержимым PDF. У меня большой PDF-файл (скажем, 500 страниц). У меня также есть несколько других одностраничных PDF-файлов, содержащих только одно изображение, которые имеют максимальный размер около 8-15 КБ на файл. Что мне нужно сделать, это импортировать эти одностраничные PDF-файлы как наложение на определенные страницы большого PDF-файла.

Я попробовал LayerUtility в pdfbox, где мне это удалось, но он создает файл очень большого размера в качестве вывода. Исходный pdf составляет около 1 МБ перед обработкой, а при добавлении с меньшими pdf-файлами размер увеличивается до 64 МБ. И иногда мне нужно включить два меньших PDF в больший.

Есть ли лучший способ сделать это, или я просто делаю это неправильно? Размещаем код ниже, пытаясь добавить два слоя на одну страницу:

...
...
..
overlayDoc[pCounter] = PDDocument.load("data\\" + overlay + ".pdf");
outputPage[pCounter] = (PDPage) overlayDoc[pCounter].getDocumentCatalog().getAllPages().get(0);

LayerUtility lu = new LayerUtility( overlayDoc[pCounter] );
form[pCounter] = lu.importPageAsForm( bigPDFDoc, Integer.parseInt(pageNo)-1);
lu.appendFormAsLayer( outputPage[pCounter], form[pCounter], aTrans, "OVERLAY_"+pCounter );
outputDoc.addPage(outputPage[pCounter]);

mOverlayDoc[pCounter] = PDDocument.load("data\\" + overlay2 + ".pdf");                      
mOutputPage[pCounter] = (PDPage) mOverlayDoc[pCounter].getDocumentCatalog().getAllPages().get(0);

LayerUtility lu2 = new LayerUtility( mOverlayDoc[pCounter] );
mForm[pCounter] = lu2.importPageAsForm(outputDoc, outputDoc.getNumberOfPages()-1);
lu.appendFormAsLayer( mOutputPage[pCounter], mForm[pCounter], aTrans, "OVERLAY_2"+pCounter );

outputDoc.removePage(outputPage[pCounter]);
outputDoc.addPage(mOutputPage[pCounter]);
...
...

Ответы на вопрос(1)

Ваш ответ на вопрос