Release Date: August 01 2017
Version number: v2017R1

Java PDF Components:
jPDFViewer, jPDFNotes, jPDFEditor

API Changes (from previous version)

Java PDF Libraries deriving from jPDFProcess:
jPDFAssemblejPDFFieldsjPDFImages, jPDFPrintjPDFSecurejPDFText

API Changes (from previous version)

Other Java PDF Libraries:
jPDFOptimizer, jPDFPreflight, jPDFWeb

Feature Highlights

Parsing (All libraries)

  • Better support to manually index a document when the trailer is invalid
  • Better handling when opening documents that contain an invalid command
  • UTF8 support in PDFString objects added in PDF 2.0
  • Add a close method to all jPDF Libraries using random access files by default to release all resources
  • Handle true type font with Mac roman encoding
  • Improve performance when creating glyph vectors which was inefficient for PDFs containing a lot of text array commands

Rendering / Images (jPDFImages, jPDFProcess, jPDFViewer, jPDFNotes, jPDFEditor)

  • Throw PDFException when converting PDF to a TIFF image that is too big to avoid a NegativeArraySizeException
  • Improve rendering of rotated images (no more jagged edges) by using better interpolation
  • Added Support for Alpha Soft Masks in addition Luminosity Soft Masks
  • Error decoding JBIG2 images: Added support for custom huffman tables in symbol dictionaries
  • Fix a few clipping issue (transparency groups, masks)
  • incorrect data check
  • Do not render .notdef character for invalid characters when the font is not embedded (Simple or CID Fonts)

Printing (jPDFPrint, jPDFProcess, jPDFViewer, jPDFNotes, jPDFEditor)

  • Regression: Slow printing and bigger spool size for 1 bit image

User Interface in PDF Components  (jPDFViewer, jPDFNotes, jPDFEditor)

  • All icons have been updated to SVG
  • Support for high resolution displays including 4K
  • Custom scale print option in Qoppa’s Print Dialog
  • Copy annotations using Ctrl + Drag
  • New option to allow overlapping annotations when drawing annotations. See AnnotationTools.setDrawOverlappingAnnotationsEnabled()
  • New tooltip on thumbnail page label displaying page size, page number, page label
  • Comments Pane: Improved toolbar and tree UI
  • Comments Pane: Icons for shape annotations in comments pane now match color of corresponding annotation
  • Comments Pane: Change icon size (small, medium, large, extra large). See IconSettings.setCommentsPanelStandardIconSize()
  • Draw form field widgets on top of annotations (to make it possible to fill form fields when a PDF contains annotations..)
  • Red border bounds around required fields now matching other viewers
  • Resizing does not keep location when fit to page / continuous scrolling

Annotations / Links (jPDFNotes, jPDFEditor, jPDFProcess)

  • Annotations rich text support (bold, italic, underline, cross-out)
  • Annotations CJK font support (subset and embed characters)
  • Annotations system fonts support
  • Annotations read font information from the RC entry
  • New transparency property for text box / free text annotations
  • Additional properties for text annotations: strike through, underline.
  • Create rubber stamps from PDF. See IAnnotationFactory.createRubberStamp(IPDFPage)
  • New option for “Acres” in area measuring annotations. See AreaTool.ACRES.
  • New line endings for polylines (square, circle, diamond, open arrow, closed arrow, butt, reverse open arrow, reverse closed arrow, slash)
  • New sticky note icon options (note, paragraph, arrow, star, pointer, etc..). Text.setDefaultIcon()
  • New border style options for links (solid, dashed, underline). See Link.setBorderStyle()
  • Add Annotation.getPageIndex() (also accessible in Widget class)
  • Add Annotation.getAnnotationComponent() method for API clarity
  • Handle UnsupportedAnnotations better in GUI
  • Annotation imported with rich text does not export changes
  • Reduce hit test margin for line annotation

JavaScript (jPDFViewer, jPDFNotes, jPDFEditor)

  • A few enhancements to JavaScript support
  • JavaScript Support to add annotations
  • JavaScript Support for closeDoc


OCR (jPDFProcess)

  • New option to remove existing invisible text during OCR. See OCROptions.setDiscardInvisibleText()
  • Straighten/Deskew scanned images before performing OCR. See OCROptions.setDeskew()



  • Merge contiguous draw text commands when possible
  • Add option for relative size when saving a page as SVG (SVGOptions.ZoomMode.FitPage, SVGOptions.ZoomMode.FitWidth) instead of using point size
  • Performance issue on converting PDF document to SVG
  • Add support to convert annotations without appearance streams
  • jPDFWeb Sample App Improvements

Digital Signatures (jPDFSecure, jPDFProcess)

  • Support for PAdES signatures as defined in PDF 2.0. Formats supported are PAdES-BES and PAdES-T (same as PAdES-BES but with timestamp). See SigningInformation.FORMAT_PADES
  • (Docusign / Cosign). Fix Missing AES Cipher Issue (incorrect formatting of TU entry & signed attributes)>

Redaction (jPDFProcess)

  • Redaction annotation public API was missing setFillColor method
  • Use JBIG2 compression when redacting compressed black and white images (JBIG, CCIT)

jOfficeConvert (replaces jWordConvert)

  • New! Convert Excel files to PDF

Other Enhancements

  • Many internal improvements and bug fixes