You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Andreas Lehmkuehler <an...@lehmi.de> on 2012/02/05 19:03:33 UTC

Re: Support Different versions of PDF using PDFBox

Hi,

Am 08.12.2011 16:28, schrieb Haris Javaid:
> Hello there,
>
> We are working on a product that supports highlighting a PDF as one of its
> features. The way we are currently highlighting a document is as follows:
>
> 1)Create an empty PDF which has the same number of pages as the ‘document to be
> highlighted’.
>
> 2)Draw a free form highlight on the empty document
>
> 3)Put the document to be highlighted on top of the empty document to highlight
> the text we want to highlight using library’s Overlay.overlay method as
>
> a.PDDocument finalDoc = *new*Overlay().overlay(overlayingPdf.getDocument(),
> bottomDocument);
>
> This all works perfectly until the document version changes i.e. it won’t work
> with a document that was created with Adobe version 1.3. Following is the code
> from PDDocument.java in PDFBox that hard codes version to be 1.4.
>
> *public*PDDocument() *throws*IOException
>
> {
>
> document = *new*COSDocument();
>
> //First we need a trailer
>
> COSDictionary trailer = *new*COSDictionary();
>
> document.setTrailer( trailer );
>
> //Next we need the root dictionary.
>
> COSDictionary rootDictionary = *new*COSDictionary();
>
> trailer.setItem( COSName.ROOT, rootDictionary );
>
> rootDictionary.setItem( COSName.TYPE, COSName.CATALOG );
>
> rootDictionary.setItem( COSName.VERSION, COSName.getPDFName( "1.4"));
>
> //next we need the pages tree structure
>
> COSDictionary pages = *new*COSDictionary();
>
> rootDictionary.setItem( COSName.PAGES, pages );
>
> pages.setItem( COSName.TYPE, COSName.PAGES );
>
> COSArray kidsArray = *new*COSArray();
>
> pages.setItem( COSName.KIDS, kidsArray );
>
> pages.setItem( COSName.COUNT, COSInteger.ZERO );
>
> }
>
> As you can see that the library sets up the PDF document version to be 1.4
> (highlighted above). So if the version is 1.3, the library will only put
> highlighting and the original contents of the ‘document to be highlighted’ will
> be gone.
>
> Is it a limitation of the library? Is there a workaround this problem?
>
> We are trying to meet a deadline and were very happy with our approach until we
> hit this issue. I would really be thankful for your help into this matter.
>
> Attached is the original pdf and the resulted pdf.
>
> Cheers,
>
> Haris
>
That issue should be fixed in the current trunk, see [1] for further details.

BR
Andreas Lehmkühler

[1] https://issues.apache.org/jira/browse/PDFBOX-879