PDFBox LayerUtility - Importando capas a PDF existente

Estoy utilizando pdfbox para manipular el contenido de PDF. Tengo un archivo PDF grande (digamos 500 páginas). También tengo algunos otros archivos PDF de una sola página que contienen solo una imagen, que son de aproximadamente 8-15kb por archivo como máximo. Lo que debo hacer es importar estos pdf de una sola página como una superposición a ciertas páginas del gran archivo PDF.

He probado LayerUtility de pdfbox donde he tenido éxito, pero crea un archivo de gran tamaño como salida. El pdf de origen es de aproximadamente 1 MB antes de procesarse y cuando se agrega con los archivos pdf más pequeños, el tamaño aumenta hasta 64 MB. Y a veces necesito incluir dos PDF más pequeños en el más grande.

¿Hay una mejor manera de hacer esto o simplemente estoy haciendo esto mal? Código de publicación debajo tratando de agregar dos capas en una sola página:

...
...
..
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]);
...
...

Respuestas a la pregunta(1)

Su respuesta a la pregunta