pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Haris Javaid <Haris.Jav...@thoughtcorp.com>
Subject Support Different versions of PDF using PDFBox
Date Thu, 08 Dec 2011 15:28:49 GMT
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.


  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message