Release Date: August 01 2018
Version number: v2018R1

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
jOfficeConvert (Released on August 08 2018)

Feature Highlights

  • Java 9 Support
  • Rich Text and Non-Latin Unicode Support in Form Fields
  • Many Enhancements to Preflight & PDF/A Conversion
  • Preserve PDF/A Compliance when Signing Tagged PDF/A Documents
  • Search Text / Find Text Around Lines
Parsing / Assembling / Creating / Manipulating (jPDFProcess, jPDFAssemble, jPDFFields and other libraries)

JPDF-1125 – Compress objects when saving or assembling PDFs that originally contained object streams
PS-3946 – Update PDF File Version from 1.5 to 1.7 when creating new PDF documents
JPDF-1132 – Remove unused resources when extracting pages from a PDF
JPDF-1175  – Remove unused objects when removing embedded files
JPDF-1205 – Document modified date is now automatically when saving a PDF
JPDF-1232 – Avoid NullPointerException when merging tags in PDFs when ParentTree is incorrectly missing both Nums and Kids entries
JPDF-1120 – Document Specific: Extract text from a PDF page appears to hang due to infinite loop in regex matching code
JPDF-1080 – Add methods to TextPosition to return quads in view coordinates ()
JPDF-1182 – Flattening Fields – Barcode Fields & Comb Fields disappear
JPDF-1148 – New API to create page templates ()
JPDF-1227 – Remove internal methods addDocumentModifiedListener() and removeDocumentModifiedListener() methods from PDFDocument public API
JPDF-726 – Evaluated Tesseract OCR version 3.05 but decided to stay with 3.02
JPDF-1074 – Remove old deprecated class PDFPermissions class and all methods that use it
JPDF-1218 – The ArrayFileAttachment class writes out deflated contents when writing to an OutputStream
JPDF-1136 – Unable to read un-encrypted XMP metadata in an encrypted document
JPDF-1223 – TextField getValue/SetValue were returning/expecting rt format

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

JPDF-1189 – Implement Gouraud FreeForm gradients
JPDF-1199 – Add a method to jPDFProcess / jPDFPrint to print pages as images
JPDF-1145 – Java Bug: Rotated images print with black horizontal lines artifacts, especially noticeable images are painted by strips when printing. Adding a PDFRenderHints to customize the amount of memory used for each strip.
JPDF-1214 – Document Specific: Null Pointer Exception when reading a CID fon
JPDF-1212 – Use BBox when rendering gradients
JPDF-1234 – Document Specific: Rendering incorrect glyphs. For non-embedded type2 CID fonts with no Unicode mapping, use GIDs from local machine
JPDF-1197  – Fix bugs in sampled function formula and function gradients
JPDF-1106  – Java 9 Support: Remove references to internal com.sun classes for GIF and PNG metadata
JPDF-1111 – Java 9 Support: Change JPEG 2000 compressor to use internal code, instead of jai_imageio
JPDF-1116 – Background is yellowish instead of white: calgray color space
JPDF-578  – Proper conversion to HSL in compositing blends
JPDF-1172 – Handle color spaces and bits per pixel correctly in JPEG 2000 images
JPDF-1118 – Enhanced ImageResource class to return more information about an image: color space, compression, num components, bits per components
JPDF-993  – Document Specific: Shade image too large to draw due to clip area not being initialized
New option to print selected pages

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

JPDF-1032  – Support full Unicode in new and existing form fields
JPDF-8 – Search Around Lines
Print Dialog: Print Preview will now show layers based on their print flag
Print Dialog: Simulate collate as fallback when printer doesn’t support collate
New Destination Tab allowing to view destinations (links, bookmarks).
File Attachment Tab: View/edit descriptions for embedded file + new toolbar
Snapshot tool now allows dragging for larger image area
Overlay comparison output improvements
JPDF-1220 – Change from labels to icons to indicate left tabs / panes (thumbnails, bookmarks, signatures, etc..)
JPDF-1087 – Option to not display warning when saving signed document
JPDF-1117 – Open public API to get to the File Attachment pane context menu (see AttachmentContextMenu)
JPDF-1066 – Validation warning when trying to clear a formatted number field that is required
JPDF-1108 – Java 9 Support: Remove direct reference to SunAlternateMedia (an internal class)
JPDF-1149 – Java 9 Support: Fix 4k issue with large font size and grey background
JPDF-1230 – In form fields, read and use XFA attribute for line height
JPDF-1112 – Fix error loading PDF when the destination array is empty
JPDF-1089 – InitialViewSettings.setMagnification improvements
JPDF-1077 – Duplicate / Repeating form field data for fields that share an appearance stream. Now create a new appearance stream for each field.
JPDF-587 – Public package renamed from com.qoppa.pdfViewer.actions to com.qoppa.pdf.actions
JPDF-1101 – PDFToolbar returns a ToolbarSeparator that is not accessible to the public API
JPDF-159  – Slow text field entry when there is no word breaks
JPDF-627 – Document Specific: Missing some characters in a form field (WinAnsiEncoding)
JPDF-769 – Document Specific: [Linux] Empty squares are showing when editing CJK characters
JPDF-1119 – Document Specific: Page Label gives an arrayindexoutofbound exception
JPDF-1007 – Document Specific: Text Selection showing some triangular patterns
JPDF-939 – Content editing performs a divide by zero when calculating the bounds of stroked paths
JPDF-938 – Content editing can erroneously insert a clip between a BT/ET pair when it redoes clipping
JPDF-1126 – Content editing bug: setting color of text and shapes can corrupt content or affect other objects
Content Editing: View shade object properties in addition to text and path objects

Annotations / Links (jPDFNotes, jPDFEditor, jPDFProcess)

JPDF-1133 – Error when exporting a typewriter annotation as XFDF without saving document
JPDF-1070 – Getting null pointer exception when losing focus on typewriter annotation the first time
JPDF-1069 – Typewriter annotation issue when editing in high scale
JPDF-1059 – Reply to annotations and grouped annotation now return their own contents instead of parent contents. Also open public API to return Parent Annotations.
Callout selection now follows shape


JPDF-1208  – Review FontSettings Javadoc and Font Substitution in our sample library
JPDF-1194  – Document Specific: Error when laying out glyph for a font: NoninvertibleTransformException: Determinant is 0
JPDF-1115 – Not using ToUnicode when extracting text with a JavaFontProgram
JPDF-1134 – Fix ArrayIndexOutOfBoundsException in JavaFontProgram.offsetGV()
JPDF-1081 – Embedded fonts created with wrong type for FontDescriptor.FontFamily
JPDF-1138 – ArrayIndexOutOfBounds in TrueTypeFontInfo.processCharMetrics
JPDF-948  – CJK fonts support in form fields
JPDF-942  – Change Default to Use Substitute Fonts and Change Substitute Font to Java Sans Serif Font instead of Helvetica®


JPDF-1091 – Add new ZUGFeRD preflight verification profile
JPDF-1065 – Add basic support for adding ZUGFeRD invoice attachment
JPDF-1152 – Flatten Acro Forms and Remove JavaScript when converting to PDF/A
JPDF-1226 – Provide a way to clear usage rights & in general digital signatures through conversionoptions
JPDF-1169 – jPDFPreflight API Improvements – moving some methods from PDFPreflightResults to PDFPreflight
JPDF-1051 – PDF/A Compliance: Trim metadata entries in dictionary before comparing with XMP meta data
JPDF-1188 – Unfixable font issue: “KIIHAP+Courier” is not embedded, should ignore prefix
JPDF-1193 – Document Specific: PDF/A Verification fails after PDF/A conversion
JPDF-1209 – Add legend for icons in validation and conversion report
JPDF-1187 – Conversion exception: com.qoppa.pdf.PDFException: Unsupported filter: JPXDecode
JPDF-866 – PDF/A validation incorrectly flagging InstanceID as an invalid XMP property
JPDF-1167 – Document Specific: Fix infinite loop when parsing a pdf stream when converting document to PDF/A-1
JPDF-1166 – Support converting to PDF/A-1b and PDF/A-3b when output intent is RGB but a shading is using DeviceCMYK
JPDF-1088 – Keep OutputIntent if already present when converting to PDF/A
JPDF-1071 – PDF/A-2b conversion does not validate due to link annotations’ content streams missing resource dictionaries
JPDF-1076 – Remove Unused Objects + PDF/A Conversion Issues: Converted docs are immediately failing Verification
JPDF-1137 – Document Specific: Document fails verification after conversion
JPDF-1153 – PDF/A Conversion: Fix “cmap table contains 2 encodings but should only contain 1”
JPDF-1173 – Document Specific: XML Parse Exception in the document metadata when converting to PDF/A-1b
JPDF-1181 – PDF/A Validation: Incorrectly flagging the .notdef glyph (Glyph ID 0) as undefined for true type fonts, when it should just be used for glyph IDs that do not actually have a glyph definition in the font.
JPDF-1180 – PDF/A Validation: Optional content is allowed in PDF/A-2 and beyond
JPDF-1225 – Old version of Tahoma.ttf is considered as not embeddable for PDF/A conversion due to multiple permission bits set
JPDF-1177 – Document Specific: Allow for negligible differences in fonts Width Validation to be consistent with other applications and avoid validation issue “Font widths must be the same in both the font dictionary and the embedded font file”
JPDF-1198 – Document Specific: Null Pointer Exception when converting a PDF to PDF/A
JPDF-1206  – ConcurrentModificationException when running PDF/A Validation when checking XMP Metada
JPDF-1216 – PDF/A verification incorrectly reporting incomplete Character Set in some cases
JPDF-1201 – Preflight Conversion report issues
JPDF-1135 – Various improvements to preflight parser to handle invalid PDF documents better
JPDF-1155 – Preflight Conversion fails due to Font Helvetica is not embedded (due to a “Differences” / custom encoding instead of WinAnsiEncoding or MacRomanEncoding)
JPDF-759 – Incorrect BOM in XMP metadata header prevents metadata parsing
JPDF-1165 – jPDFPreflight Sample App is no longer showing the icons (red x for errors, yellow ! for warning) indicating whether pdf/a issues can be fixed during conversion or not
JPDF-1164 – jPDFPreflight Sample – Assembly Permission issue thrown on validation
JPDF-1195  – jPDFPreflight Sample – Improvement to how results are displayed in the tree
JPDF-1097 – Show less of “Details not available in Demo Mode” when evaluating jPDFPreflight


JPDF-1226 – Provide a way to clear usage rights & in general digital signatures
JPDF-1158 – Add a setting to preserve original image if re-compressed image is bigger than original
JPDF-1171 – Duplicate images are not always removed correctly
JPDF-1113 – jPDFOptimizer is creating temporary files that are not being deleted
JPDF-1090 – Using byteArrayInputStream causes NPE due to new optimizer logging
JPDF-1127 – Missing Font after Optimizing with DiscardUnusedResources (specific docs)
JPDF-1147 – Java 9 Support when optimizing CMYK JPEG images
JPDF-1222 – Optimizer duplicate fonts logic produces inconsistent results
JPDF-1221 – Optimize and audit does not count unused objects
JPDF-1217 – Improvement to jPDFOptimizer Sample Demo Application
JPDF-452 – Improve convertSamplesToCS methods in DeviceN and Separation color spaces
JPDF-1151 – Corrupted image (displayed with an X) when optimizing and changing DPI of an indexed image with a ColorKey transparency mask

Digital Signatures (jPDFSecure, jPDFProcess)

JPDF-683 – When document is tagged as PDF/A make digital signature PDF/A compliant (embed font, image with color profile)
JPDF-1192 – Non Latin Characters are not handled well in the signature tab and signature validation status dialog
JPDF-1086 – Regression: the transparency attribute in SignatureAppearance has changed to work in the exact opposite way.
JPDF-1064 – Add methods getSignCustomProperty, getSignContactInfo to SignatureField
JPDF-960 – Update sigflags when deleting signature fields
JPDF-875 – Support creating signature appearance for digital certificates with fields (such as signer) containing non-Latin characters
JPDF-1107 – When signing if Alias is null use first alias in digital ID
JPDF-1035 – Add additional options to the jPDFSecure Sample App
Add support for PAdES signatures
Option to set time stamp server length size in digital signatures

Redaction (jPDFProcess, jPDFEditor)

JPDF-1144 – Document Specific: Fail to redact due to internal error
JPDF-1103 – Inverted color artifacts on page after applying redaction on JBIG2 stencil images
JPDF-1157 – Applying a redaction annotation with background color corrupts stencil images
JPDF-1141 – Document Specific: ArrayOutOfBoundsException when applying text redaction (due to a FormXObject that is painted multiple time on the page)

jOfficeConvert: Word to PDF, Excel to PDF

PS-3946 – Update PDF File Version from 1.5 to 1.7 when creating new PDF documents
JOFFICE-412 – Add support for styled text artwork defined as VML Object
JOFFICE-415 – Wrong position for floating nested table located within bullet points
JOFFICE-405 – Document Specific: Fix infinite loop when convert Word to PDF
JOFFICE-404 – Document Specific: Infinite loop when converting Word document containing rotated wrapped cells
JOFFICE-402 – Document Specific: Infinite loop due to an un-splittable table cell that was longer than an entire page
JOFFICE-401 – Fix infinite loop when comparing 2 floats of value Float.MAX_VALUE
JOFFICE-400 – Shape issues when converting document
JOFFICE-399 – Document Specific: Missing table content when table has floating position and spans across multiple pages
JOFFICE-396 – jOfficeConvert demo application enhancements
JOFFICE-395 – Document Specific: Infinite loop when converting Word to PDF
JOFFICE-394 – Make sure our sample jar for jOfficeConvert contains the sample java classes for sample programs (i.e. source code) and not only classes
JOFFICE-393 – Document Specific: NullPointerException when parsing alternate content: Handle null positionH/V in CTAnchor child elements
JOFFICE-387 – Exception Invalid integer value: 0.0 in table layout when converting word to PDF
JOFFICE-386 – Document Specific: Excel conversion error creates document with Missing Pages entry in file catalog
JOFFICE-382 – jOfficeConvert Demo App: Default Filters for Acceptable Files
JOFFICE-381 – jOfficeConvert Demo App: Automatically default the output file name to filename + pdf
JOFFICE-380 – Conversion problem: Overlapping Text
JOFFICE-379 – Ignore alpha entry in CT_Color element in Excel documents and always set it to fully opaque
JOFFICE-377 – Excel to PDF JavaDoc Missing for ExcelConvertOption
JOFFICE-374 – Document Specific: Fix infinite loop when converting Word to PDF
JOFFICE-361 – Make sure we support z-order on overlapping content
JOFFICE-349 – Rotation issue when converting document
JOFFICE-179 – Word Conversion Problems

jPDWeb: Convert PDF to SVG / HTML5

JSVG-172 – Add Excel to HTML5 Conversion to jPDWeb Live Servlet Demo (Requires jOfficeConvert library)
JSVG-167 – Define standardized names in SVG element output for ids and classes for clarity
JSVG-175 – OCR / Invisible Text is now added to the SVG output (as transparent)
JSVG-173 – Include cmykProfile.jar in jPDFWeb Sample Application required to render CMYK content
JSVG-170 – Document Specific: Fails to convert
JSVG-169 – Document Specific – Null Pointer Exception – text & graphics not rendered
JSVG-168 – jPDFWeb Sample Application: Update to latest Java 8 Version to avoid antivirus warning

Other Enhancements

JPDF-1146 – Update certificate in sample applications installers
Many internal fixes and enhancements

Note: Helvetica® is a trademark Monotype Imaging Inc.