[ 
https://issues.apache.org/jira/browse/PDFBOX-4294?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16592859#comment-16592859
 ] 

Adrian Sandor commented on PDFBOX-4294:
---------------------------------------

Some comments about the MyOverlay class I attached:
 * the code is much shorter and simpler
 * it doesn't do any loading or closing whatsoever, that is left to the user
 * the input document is attached at construction
 * the main methods to use are: getLayoutPage, processPage and resetDoc; 
LayoutPage inner class is public
 * processPage processes only one page at a time, and takes an AffineTransform 
argument for full and easy customization
 * overlays can be added in any order, and the document is usable at any point; 
there is no special handling for "all pages", first/last/even/odd pages, nor 
any map of page numbers to file names; the user can just add overlays as they 
wish
 * resetDoc reverts to the original document without reloading
 * page numbers are 0-based (as they should be)

> Scratch file already closed when redoing overlay
> ------------------------------------------------
>
>                 Key: PDFBOX-4294
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4294
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.0.11
>            Reporter: Adrian Sandor
>            Priority: Major
>         Attachments: MyOverlay.java
>
>
> Here's some sample code to reproduce the problem:
>  
> {code:java}
> final String path = "orig.pdf";
> final String stampPath = "stamp.pdf";
> final PDDocument doc = PDDocument.load(new File(path));
> final Overlay o = new Overlay();
> o.setInputPDF(doc);
> o.setOverlayPosition(Position.FOREGROUND);
> final HashMap<Integer, String> m = new HashMap<>();
> m.put(0, stampPath);
> PDDocument res = o.overlay(m);
> res.close();
> res = o.overlay(m);
> {code}
> Basically I'm doing an overlay, closing the resulting document, then doing it 
> again (normally I would make some changes first, but I didn't include that 
> for the sake of brevity).
> The last line throws java.io.IOException: Scratch file already closed
> If I remove "res.close()" then the code works, but if I do the overlay 
> multiple times, I get warnings like: org.apache.pdfbox.cos.COSDocument - 
> Warning: You did not close a PDF Document
> which suggests that I should actually close the document when I'm done with 
> it.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to