Release Date: August 17 2016
Version number: v2016R1
Java PDF Libraries: jPDFProcess, jPDFAssemble, jPDFFields, jPDFImages, jPDFPrint, jPDFSecure, jPDFText

API Changes (from previous version)

Note: There are quite a few API differences between this version and the previous one. One reason is that Qoppa’s libraries are now compiled in Java 6 and make use of Generics. The other reason is that many methods that used to be accessible through IPDFDocument and IPDFPage have been copied to PDFDocument and PDFPage to make these methods more visible to our customers.

It is important to bring the new jars into your IDE and to recompile your application when upgrading to the new version of our libraries.

Also make sure to update the rhino library if using JavaScript and the Bouncy Castle libraries if using digital signatures.

Feature Highlights

  • Change Java version to 1.6
  • Change API to use generics. This requires to bring new jars into IDE and recompile.
  • Much improved up-sampling of images

Image / Rendering / Fonts / Printing
JPDF-782 – Add support for embedded truetype collections (ttc). The PDF specs do not seem to support embedded TrueType collections but some of our competitors do, so added support for them.
JPDF-533 – Improve performance when rendering gradients: radial, axial, …
PS-2658 – Better error handling for images with corrupted metadata
PS-3146 – Print form only option that will only print form fields and no page content. See PrintSettings.setPrintFormsOnly()
JPDF-679 – Added code to protect against invalid color maps (ArrayIndexOutOfBoundsException) and make sure pages can render
JPDF-754 – Font ClassCastException when opening PDF due to Type3 handling of encodings
JPDF-753 – Document Specific: Support for Type0 fonts with embedded CMap and embedded non-CID CFF font
JPDF-751 – Resolve concurrency issue with Kodak Color System (Java 6, Java 7) java.awt.color.CMMException: General CMM error528
at sun.java2d.cmm.kcms.CMM.checkStatus(CMM.java:180)
at sun.java2d.cmm.kcms.ICC_Transform.colorConvert(ICC_Transform.java:126)
JPDF-739 – Document Specific: ArrayIndexOutOfBoundsException in font when getting char width
JPDF-520 – Incorrect Unicode values from text where font has custom encoding
JPDF-730 – Fix possible thread deadlock issue when getting font metrics
JPDF-720 – 4 bit images with multiple components (i.e. 4 bit RGB images) not being painted correctly
JPDF-719 – NullPointerException when loading document with “empty font”
JPDF-727 – Document Specific: Rendering characters that should not be. Added “nonmarkingreturn” and “.null” to Adobe Glyph List.
JPDF-779 – Regression: Restored logic to read and use ToUnicode stream as a CID CMap
JPDF-729 – Regression: Font Rendering Issue with Custom Type 3 Font using stencil image for each character

Annotations
JPDF-715 – Added support for creation date, optional entry for markup annotations. API Change: New getCreationDate() method.
JPDF-724 – Add convenience method IAnnotationFactory.createTypeWriter() to create a free text with a “FreeTextTypeWriter” intent

Bookmarks / Links 
JPDF-705 – Added BookmarkPanel.expandCurrentBookmark() to API

Interactive Form Fields 
JPDF-763 – Add method Widget.getRotation() returning the rotation of the form field widget
JPDF-733 – Fix issues with default signature tool tip (“Click to Sign”) and setToolTipText() method in signature fields
JPDF-706 – Fix null pointer exception on loading document, in XFA code, due to missing data in the data node of datasets
JPDF-789 – Class cast exception when clicking on a date field
JPDF-215 – Regression: Some characters don’t show when typed into document field with no encoding specified
JPDF-750 – Regression: Graphics.setFont issue with Bold versus Plain

JavaScript
JPDF-774 – Added support for Javascript functions Doc.gotoNamedDest(), App.popUpMenu(), App.openDoc()
PS-2195 – Added support for JavaScript field.maildoc
JPDF-790 – Add required fields validation and handle response for submit function in javascript (in the same way as for submit form action)
PS-2690 – Open API access to JavaScript Page Actions & Document Actions. See TriggerActions.getPageOpenActions(), getPageCloseActions(), getDocCloseActions(), getDocWillSaveActions(), getDocWillPrintActions()

File Attachments 
JPDF-755 – File attachment not found in Adobe Reader when attachments are not added to the tree alphabetically.
JPDF-778 – New method PDFDocument.addEmbeddedFile() with inputstream and additional parameters
JPDF-785 – IEmbeddedFile, the info class for file attachments, has new methods: getCheckSum(), getCreationDate(), and getModDate()
JPDF-793 – File attachments with Unicode characters in file name are not displayed correctly
JPDF-797 – NullPointerException when getting file attachment file size when PDFStream filter entry missing in dictionary

Content Editing / Document Assembly
New method PDFDocument.appendImageAsPage() to add a new page to a document consisting of the image
JPDF-742 – Add workaround to avoid “Missing Catalog Error” after editing content of a PDF with an invalid XRef stream entry.
PS-3182 – Disallow document changes when document is signed with a standard signature. Signature should be cleared before making any changes to the document. See new com.qoppa.permissions.SignaturePermissions class.

Font and Image Resources

JPDF-808 – Add new package com.qopp.pdf.resources in jPDFProcess giving access to fonts and images contained in the PDF document. See Extract Embedded Image in a PDF. See List Resource Fonts in a PDF

Redaction
JPDF-798 – Document Specific: Page missing content after applying redaction annotation
JPDF-772 – Document Specific: Redaction text not redacted and text shifting

Security
JPDF-736- Add new method PDFSecure.getEncryptType() that returns the encryption type

Third Party Libraries
JPDF-799 – Update to use Rhino version 1.7.7.1 to allow JavaScript sand-boxed mode that only initializes “safe” java objects (“leaving out those that offer access directly to Java classes”)
JPDF-713 – Update to use Latest Bouncy Castle Libraries v1.54

Jars / Build
JPDF-799 – Make com.qoppa.pdf.settings public since it contains public classes
JPDF-552 – Compile with Java 1.6 – Drop support for Java 1.4 and 1.5
JPDF-677 – Add complete build number to manifest file (for instance v2016R1.3 instead of v2016R1)

Sample Demo Applications
JPDF-721 – Add more info to logs such memory used, vm options, operating system info
JPDF-685 – Open up additional Menu functions in component sample app menus (to demonstrate more features)
JPDF-800 – Windows: New program group and additional start menu items for end-user guide, JavaDoc API, Qoppa Home Page, Uninstall
JPDF-724 – jPDFImages Sample Demo – Option to choose a folder not only single files
JPDF-736 – jPDFSecure Sample – Improvements to the sample application

Tagged: