May 8 2015

Version number: 2015R1 (v2105R1)

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

API Changes (from previous version)

The API change includes the difference in each individual library package: com.qoppa.pdfAssemble, com.qoppa.pdfFields, com.qoppa.pdfImages,, com.qoppa.pdfProcess, com.qoppa.pdfSecure, com.qoppa.pdfText so library customers can immediately identify the  changes in the individual library they use.  It does not include com.qoppa.pdfOptimizer which is not included in jPDFProcess.

Feature Highlights:

  • (All Libraries) Images processed more efficiently in memory and CPU
  • (jPDFImages, jPDFProcess) Rendering to custom color spaces
  • (jPDFProcess) Apply / Burn redaction annotations
  • (jPDFOptimizer) Linearization option when optimizing

Read our Press Release

API Cleanup
(All Libraries)

This release, we removed many unnecessary classes and functions, most of them had been deprecated for over 2 years. Here is the list of all removed objects with their replacement in the new API.

Parsing / Rendering / Printing
(jPDFProcess, jPDFPrint, jPDFImages)

[JPDF-562] – Image handling framework was redesigned to process images more efficiently in memory / CPU usage
[JPDF-583] – New option to render to a given color space, by default sRGB. See PDFPage.getImageCS() and PDFImage.getPageImageCS()
[JPDF-499] – (Document Specific) Do not show invalid font characters to be consistent with other viewers. Used to show square (.notdef) character.
[JPDF-519] – (Document Specific) Rendering marked content that is not optional when turning layers on and off.
[JPDF-522] – (Document Specific) Fix issue with content visibility for nested layers



[PS-357] – Support for border style (dash, cloud, etc…) in all shape annotations
[PS-2172] – Added ability to create points or dots with the pencil annotation. (Previously dots were not recognized)
[JPDF-481] – New place holders classes for unsupported annotations: RichMedia, ThreeDimensional, Watermark, UnrecognizedAnnotation (used to load them as RubberStamp)
[JPDF-535] – Open API to access review cycle in annotations. See Annotation.getCheckMarkStatus() and getReviewHistory().

Importing / Exporting Annotations

[JPDF-464] – Fixed some issues with export / import as XFDF with lines and measuring annotations
[JPDF-528] – Not exporting fill color for line endings (arrow, square, circle) in line annotations into XFDF
[JPDF-538] – XFDF output was writing incorrect file IDs. Now use the hex representation of the file IDs.
[JPDF-505] – (Document Specific) Export as FDF corrupts document

Interactive Form Fields
(jPDFProcess, jPDFFields, jPDFImages, jPDFPrint)

[PS-1751] – Support image scaling in button field
[PS-2038] – Handle both field widget and page rotation for text orientation
[JPDF-502] – Field values are not showing up – XFA mapping using bind.match=”dataRef”
[jPDF-439] – (Document Specific) Checkmarks in checkboxes not rendered when “Wingdings 2” font is not embedded
[JPDF-539] – (Document Specific) Infinite loop on flattenFields

New! Redaction Burning

[jPDF-557] – Apply / Burn PDF Redaction Annotations. See PDFPage.applyRedactions() and PDFPage.applyRedaction()

Document Assembly
(jPDFProcess, jPDFAssemble)

[JPDF-579] – ! Deleting pages was removing some link actions
[JPDF-244] – StackOverFlow error when deleting page in a PDF when the object tree is very large / complicated
[JPDF-503] – Document Specific: Output document is blank when extracting first page
[jPDF-515] – When 2 tagged documents are merged, the tag structures are also merged.

Digital Signatures
(jPDFProcess, jPDFSecure)

[JPDF-458] – Add support for JavaScript Field SignatureInfo for Sign button field
[PS-1678] – Fixed issue when reading EchoSign digital signatures when reading the signer and expiration date info.
[JPDF-498] – (Document Specific) Better handle invalid PKCS#7 object in signature. Document will now load.


[JPDF-475] – Use decode array when optimizing images to avoid inverted images
[JPDF-544] – Some images are not being optimized when contained in FormXObject
[JPDF-495] – Add linearization to jPDFOptimizer. See OptSettings.setLinearize()

(All Libraries)

[JPDF-306] – Support JPEG 2000 compression when adding images. See ImageParams.COMPRESSION_JPEG2000
[PS-1953] – New inherited method PDFDocument.isTaggedPDF()
[JPDF-415] – Added new method usePermissionsPassword (to unlock permissions) to jPDFImages, jPDFPrint, jPDFFields, jPDFSecure
[JPDF-529] – New option to set JavaScript option on open document. See PDFDocument.setJSOpenAction().
[JPDF-507] – New 64bit installer for Mac64 with Java 7 bundled for all libraries
Many more tasks with small improvements and bug fixes (hundreds of them!)


Other Announcement: New HTML5 PDF Viewer Available!
In February 2015, Qoppa Software released a new library jPDFWeb that can convert PDF documents to SVG / HTML5, and was integrated into an HTML5 PDF viewer. Read more about the new HTML5 PDF Viewer here.