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.