You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Jukka Zitting (JIRA)" <ji...@apache.org> on 2009/11/24 15:39:39 UTC

[jira] Commented: (PDFBOX-567) PDDocument always creates a real file. Added a constructor option to allow for the use of a memory buffer rather than a file.

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

Jukka Zitting commented on PDFBOX-567:
--------------------------------------

Good idea!

I'm not too excited about the boolean flag argument to the constructor. Is there some other way we could design the API. How about something like this:

    public PDDocument(COSDocument document) {
        this.document = document;
        // ...
    }

    public PDDocument(RandomAccess buffer)  {
        this(new COSDocument(buffer));
    }

    public PDDocument() {
        this(new COSDocument());
    }

It does make it a bit more complex for a client to create a memory-based PDDocument, i.e. "new PDDocument(new RandomAccessBuffer())" instead of "new PDDocument(true)". How about a static factory method, like "PDDocument.newDocumentInMemory()"?


> PDDocument always creates a real file. Added a constructor option to allow for the use of a memory buffer rather than a file.
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-567
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-567
>             Project: PDFBox
>          Issue Type: Improvement
>            Reporter: Yonas Jongkind
>         Attachments: PDDocument.java, PDDocument.java.diff
>
>
> Added another constructor that allows for the use of a memory buffer instead. Better for my usage and less clutter in the temp directory by far.
> $ diff -w 'C:/Users/yonasj/AppData/Local/Temp/PDDocument.java-revBASE.svn000.tmp.java' 'C:/dev/pdfbox/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java'
> 48a49
> > import org.apache.pdfbox.io.RandomAccessBuffer;
> 120a122,134
> >       this(false);
> >     }
> >     /**
> >      * Constructor, creates a new PDF Document with no pages.  You need to add
> >      * at least one page for the document to be valid.
> >      * @param memoryScratchFile When true the temp pdf is stored in memory, when false as a real file.
> >      * @throws IOException If there is an error creating this document.
> >      */
> >     public PDDocument(boolean memoryScratchFile) throws IOException
> >     {
> >       if (memoryScratchFile) {
> >               document = new COSDocument(new RandomAccessBuffer());
> >       } else {
> 121a136
> >       }
> 305c320
> <             PDStream dest = new PDStream( new COSStream( src.getStream(), document.getScratchFile() ) );
> ---
> >             PDStream dest = new PDStream( new COSStream(  importedPage.getContents().getStream(), document.getScratchFile() ) );

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.