PDFA Validation and Conversion have been overhauled to provide output much more compatible with VeraPDF and the PDF/A specifications/technical notes (see "Appendix: Full List of PDF/A Changes" below).
XOD files are generated with built-in annotation appearance streams. This allows WebViewer 4.0+ to render annotations containing these streams as they appear in other PDF viewers.
Added an option to PDFViewCtrl.OpenUrl which will restrict download usage. This is largely to reduce data usage/bandwidth, but can also be used for security reasons.
Added the Convert::streamingPDFConversion method, for page-by-page streaming conversion of many file types to PDF.
Improvements and Bugfixes
Performance improvements for documents that have been opened directly from memory.
More accurate bounding boxes for many annotation types
Rendering accuracy improvements for nested transparency groups.
Greatly reduced memory usage when converting XLSX to PDF.
Lots of improvements and fixes to Office to PDF conversion outputs.
More robust: improved handling of badly formed xref tables, page trees, fonts and file streams.
Opacity support for fileattachment annotations.
Many other miscellaneous bug fixes.
Appendix: Full List of PDF/A Changes
We now expect the value of the N key to be an appearance subdictionary in Widget Button annotation AP dictionaries in PDF/A-1 mode (in addition to doing so for all the other modes, as we already do); also, we now match improvements made by other vendor(s), who now allow multiple entries in these subdictionaries
We now do the q/Q operator nesting limit calculation properly, taking only individual streams' nesting into account
Blend mode (BM) is now allowed to be set to "Compatible" in PDF/A-1 mode
The entire document is now checked for Metadata object stream dictionaries that contain the Filter key, in accordance with clarification in TechNote 0010 (A017)
Checking for equality of the values of the ID keywords between the first page trailer and last trailer dictionaries is only done if the ID keyword is actually present in the first page trailer, in accordance with clarification in ISO 19005-1:2005/Cor.2:2011
Added check for DeviceN colorant number implementation limit
Fixed dictionary size implementation limit check - used to allow 8190 entries instead of 4095
Added checks for real number magnitude implementation limits
Added checks for string length implementation limits
Added support for XMP metadata encoded in UTF-32
Fixed bug that caused crashes while processing PostScript Type 4 functions with invalid numbers of arguments
Added check for character identifier (CID) magnitude implementation limits
Disallowing OpenType fonts (to match other vendors' behaviour) and unrecognized font subtypes
Added check for BaseFont entry for non-Type3 fonts
Added checks for FirstChar, LastChar, and Widths entries and validation of their contents for non-standard simple fonts
Removed font loading as a validation step, to match other vendors' behaviour
Added XMP value type validation
Allowed XMP dates to have timezones
Added fix for checking colorspace device independence for all referenced colorspaces, not just the ones that are used
The presence of PresSteps is now flagged in validation mode too, not just convert mode
Page dictionaries with AA keys are now flagged (in PDF/A-2 mode or greater)
Limited appearance dictionary (AP) check to Widget annotations, and in PDF/A-2 mode and greater also annotations which have non-zero width and height and are not popups or links
Improved checking for "the stream keyword shall be followed either by a CARRIAGE RETURN (0Dh) and LINE FEED (0Ah) character sequence or by a single LINE FEED character"
Added a check for empty values of ID keys in file trailer dictionary in PDF/A-2 mode or greater
Added a fix for header validation in PDF/A-2 mode or greater: CRLF is now allowed to be used between "%PDF-1.n" and "%bbbb"
Added flagging of missing StructTreeRoot for PDF/A-1a, 2a, and 3a
Added fix for XMP parsing that allows more thorough syntactical validation
More thorough detection of the disallowed usages of transparency (matching what other vendors do)
Added fix for page dimensions validation
Inconsistent font Widths are now only flagged for embedded fonts
Added CharSet string validation for embedded Type1 fonts vis-a-vis font program glyph names
Removed XMP amendment (pdfaid:amd) contents validation, matching other vendors' behaviour
Updated the default PDF/A version mode from 1B to 2B in both SDK and command-line tool
Convert mode no longer outputs both "Z" and "00'00" hour/minute information when fixing dates within the PDF Info dictionary
We now only check for correspondence between PDF Info and XMP in PDF/A-1 mode
Fixed process colorant handling; Components is now treated as an Array, not a Dict
Fixed overprint mode handling to correspond to clarification in TechNote 0010; only the overprint control values in the ExtGState dictionary which correspond to actual use are now considered during validation
Default colorspaces are no longer inherited from the page's Resources dictionary, and are only sought within the current Resources, as per clarification with other vendors
Convert mode now removes notdefs from page Contents streams