Release Date: Coming Soon!  (June or July 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:
jOfficeConvertjPDFOptimizer, jPDFPreflight, jPDFWeb

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 PDF/A Tagged Documents
  • Search Text / Find Text Around Lines
Parsing / Assembling / Manipulating (jPDFProcess, jPDFAssemble, jPDFFields and other libraries)

JPDF-1125 – Compress objects when saving or assembling PDFs that originally contained object streams
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 IImageResource 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 – (Maybe) 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 (confirm this?)

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 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-1186 – PDF/A Conversion: Fix the font width inconsistent issue
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

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-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