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:
jPDFProcess
jPDFAssemble, jPDFFields, jPDFImages, jPDFPrint, jPDFSecure, jPDFText
API Changes (from previous version)
Other Java PDF Libraries:
jPDFOptimizer, jPDFPreflight, jPDFWeb
Feature Highlights
- 4K High Resolution Display Support
- Annotations Rich Text & Multi-Language Support
- Page Labels
- Resize PDF Pages
- Optimizer Audit
- Optimizer Results
- PDF/A-1a Validation, PDF/A-2u Validation
- PADES Digital Signatures
- New jOfficeConvert with Excel to PDF Conversion
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)
- java.util.zip.ZipException: 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
jPDFPreflight
- New PDF/A verification profiles: PDF/A-1a validation, PDF/A-2u validation
- Embed system fonts for PDF/A conversion, previously only standard PDF fonts could be embedded
- Non-PDF file attachments throw InvalidPDF exception on pdf/a-2b conversion
- Add option to verification profiles to accept different PDFA version and conformance tags in the XMP metadata
- Progress listener now gives access to any accumulated verification problem and allows to terminate the verification process
- PDF/A Conversion: create annotations appearance streams when missing
- PDF/A-1b conversion on doc with xref streams fails: “Missing File IDs in trailer”
- Missing CID Set now shows in Validation Results as unfixable
- Do not output duplicate entries in Conversion Results
OCR (jPDFProcess)
- New option to remove existing invisible text during OCR. See OCROptions.setDiscardInvisibleText()
- Straighten/Deskew scanned images before performing OCR. See OCROptions.setDeskew()
jPDFOptimizer
- Auditing a PDF to analyze objects present in the document
- Getting optimizer results programmatically, see new class OptimizeResult.
- Ability to compress object streams (on by default). See OptSettings.setCompressObjectsIntoStreams()
- Image getting reversed on optimization due to image mask not being preserved
- Incorrect calculation of DPI for jPDFOptimizer when an image is rotated
jPDFWeb
- 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