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

Version number: 2013R2 (v2103R2)

Java PDF Components: jPDFViewer, jPDFNotes, jPDFEditor

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

Read Press Release

New Features:

New Optional OCR Module [jPDFNotes, jPDFEditor]

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 the free demo of our end-user PDF software, PDF Studio, to test the OCR functionality.

Digital Signature Enhancements:

• [jPDFNotes, jPDFEditor]
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.

• [All Components]
Validation and appearance of multiple digital signatures.

• [All Components]
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 Components]

Implemented the new algorithm for AES 256 encryption (R=6) 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.

Back and Forth Navigation [All Components]

Improved back and forth navigation (go to previous or next view) within a document. Also added a new navigation API which allows customers to implement their own navigation across PDF documents. By default, our PDF components maintain location history information within a document, not across documents.

Enhancements and Fixes:

[All Components] 3628
CTRL + C on a text markup annotation now copies the underlying text to the clipboard. Also, when adding a text markup annotation, the underlying text is now automatically copied into the annotation comment. This is very useful when users look at – or print – the comments list. This default behavior can be turned off by calling TextMarkupTools.setContentsFromTextHighlight(false), etc… The API has changed to allow to get the underlying text from a markup annotation. See MarkupText.getText(IPDFPage page). There is also a new menu option called ‘copy text’ in the right-click menu of text markup annotations.

[All Components]
Reduce memory usage when rendering gradients, and slightly improved performance as well.

[All Components]
Samples demos for our components were improved to:

[All Components] 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 Components] 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.

[All Components] 1390, 3945
Fix issue with interactive combo field editor staying visible even when not in edit mode. Also added a down arrow to show when not in edit mode. These issues only happened in some JavaScript enabled forms.

[jPDFNotes, jPDFEditor] 1623
Removed any dependencies from the com.sun classes when adding JPEG images to a PDF document. New classes were added 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.

[All Components] 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.

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

[All Components] 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).

[jPDFNotes, jPDFEditor] 3834
When opening a new document, and the current document failed to save at the prompt – for instance when the document is locked under Windows by another PDF viewer – we used to close the document without saving. The document will now stay open, allowing users to resolve the lock issue or save as a new file name.

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

[All Components] 3938
Fix issue with document initial view settings, document would not open to the specified page.

[All Components] 3845
Fix some cursor issues and HTML format response on form submission.

[All Components] 3753
Space missing in specific document due to a font reading issue and getting an ArrayIndexOutOfBoundsException when trying to parse glyph shape for space glyph.

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

[jPDFEditor] 3791, 3783
Some fixes with redaction annotations: fill color, improved sensitivity of redaction tool which made it possible to add annotations unintentionally.

[jPDFEditor] 3842, 3844, 3846, 3648
Fix issues with some content editing, copying, moving and resizing.

[jPDFEditor] 3915
Fix ClassCastException error when editing text for some specific text objects.