August 09 2013. This release adds OCR (optional module), digital signatures enhancements, and the new AES 256 encryption algorithm.

Version number: 2013R2 (v2013R2)

Java PDF Libraries: jPDFProcess, jPDFAssemble, jPDFFields, jPDFImages, jPDFPrint, jPDFSecure, jPDFText

This is the full Qoppa’s PDF engine API changes from previous version:
API Changes

Read Press Release

New Features:

New Optional OCR Module [jPDFProcess]

Add searchable text to PDF documents with the new OCR module. Please contact us if you would like to offer this feature in your application. You may download our end-user PDF software, PDF Studio, to test the OCR functionality. Look under Document -> OCR – Create Searchable PDFs in the top menu.

Digital Signature Enhancements:

• [jPDFProcess, jPDFSecure]
Ability to add a certifying signature to a PDF document. A certifying signature is the first signature on a PDF and allows to define the changes that are allowed in the certified document. Read more about PDF Certifying Signatures.

• [jPDFProcess, jPDFSecure, jPDFImages, jPDFPrint]
Validation and appearance of multiple digital signatures.

• [jPDFProcess, jPDFSecure]
Check key usage for PKCS1, PKCS7 signatures. The SignatureInformation constructor will now throw an exception if the certificate’s key usage is something other than: nonRepudiation, digitalSignature, unspecified. We are enforcing key usage in order to remain consistent with the way other PDF viewers validate certificates.

New AES 256 Algorithm [All Libraries]

Implemented the new algorithm for AES 256 (R=6) encryption as defined in the latest PDF specifications (PDF 2.0). The new algorithm is compatible with Adobe® Acrobat® X and over. The new algorithm is used when applying new signatures but the “old” algorithm is still being validated in existing signatures for backward compatibility with Adobe Acrobat 9. Read more about AES 256 encryption in our knowledge base.

Enhancements and Fixes:

[jPDFProcess] 3628
The API has changed to allow to get the underlying text from a markup annotation. See MarkupText.getText(IPDFPage page).

[jPDFProcess, jPDFPrint, jPDFImages]
Reduce memory usage when rendering gradients, and slightly improved performance as well.

[All Libraries] 2816
Better handling of invalid content streams. Our PDF engine used to throw an “incorrect data check” exception on the FlateDecode filter when there was a problem with the compressed data. The engine would stop on this error and not display the content of the stream. Will now display the data that could be read before the error. This fix only works in Java 1.6 and above.

[All Libraries] 3715, 2731, 3865
Fix issue when opening protected forms for which form filling was disabled. This was an issue with PDF documents signed with Echosign, for example.

[jPDFProcess, jPDFImages] 1623
Removed any dependencies from the com.sun classes when adding JPEG images to a PDF document. New classes were created to work with JPEG files directly to read meta data and image data. This was done to resolved issues with sun classes (JPEGCodec, JPGDecodeParam…) not being shipped with older versions of the OpenJDK, and third party JVMs such as the GNU JVM.

[jPDFProcess, jPDFPrint, jPDFImages] 3905
Fix “Unrecognized postscript command: le” error that occurred on some documents. Added support for <= and >= operators in Qoppa’s postscript interpreter. The PDF format allows for postscript commands tied to color spaces or gradients.

[jPDFProcess, jPDFSecure] 3897
Fix an issue with Adobe Reader enabled documents and security: such PDFs can not be secured, in order to avoid encryption problems.

[jPDFProcess, jPDFPrint, jPDFImages] 3772 (Linux / Mac)
Fix an issue with opaque text highlights on Mac OS X + Java 1.6 environment as well as some Ubuntu distributions (need vmoption: Dsun.java2d.pmoffscreen=false).

[jPDFProcess, jPDFPrint, jPDFImages] 3753
pace missing in specific document due to a font reading issue and getting an ArrayIndexOutOfBoundsException when trying to parse glyph shape for space glyph.

[jPDFProcess, jPDFFields] 3765
Check boxes and radio buttons within an interactive forms did not respect the document permissions to disallow filling forms.

[All Libraries] 3747, 3594, 3854
Fixed specific documents / font issues.