Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Not A Bug
-
2.0.3, 3.0.0 PDFBox
-
None
-
None
-
None
-
Windows 7 Professional, Eclipse, JDK 1.8
Description
I'd like to add a watermark to a PDF and have the following code:
@Test public void testAddWatermark() { try { // test runs well with n < 3; with n < 10 and w/o overlay.close() warnings are shown for (int n = 0; n < 10; n++) { PDDocument pdfDocument = PDDocument.load(new File("C:\\data\\somePdfFile.pdf")); PDDocument pdfCopy = Pdf.extract(pdfDocument, 1, 1); PDDocument watermarkCopy = Pdf.addWatermark(pdfCopy); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // save as bytes; exception in comment thrown here if overlay.close() is called watermarkCopy.save(byteArrayOutputStream); byteArrayOutputStream.close(); watermarkCopy.close(); pdfCopy.close(); pdfDocument.close(); } } catch (Exception e) { e.printStackTrace(); } } .... public static PDDocument addWatermark(PDDocument document) { try { HashMap<Integer, String> overlayGuide = new HashMap<Integer, String>(); for(int no = 0; no < document.getNumberOfPages(); no++) { overlayGuide.put(no +1, "C:\\data\\watermark.pdf"); } Overlay overlay = new Overlay(); overlay.setInputPDF(document); overlay.setOverlayPosition(Overlay.Position.FOREGROUND); PDDocument result = overlay.overlay(overlayGuide); // overlay.close(); return result; } catch (Exception e) { log.error("Error while adding watermark: " +e.getMessage(), e); return document; } }
overlay.overlay(...) seems to cause lot's of warnings:
... [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] WARN [org.apache.pdfbox.cos.COSDocument] Warning: You did not close a PDF Document [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] WARN [org.apache.pdfbox.cos.COSDocument] Warning: You did not close a PDF Document [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! [2016-12-02-09:55:44] DEBUG [org.apache.pdfbox.io.ScratchFileBuffer] ScratchFileBuffer not closed! ...
Is there anything, that can be done to fix this issue? I tried to close anything that is closable - but the issue remains. Or can it safely be ignored?