Some test text!

Search
Hamburger Icon

Cpp / Changelog / v6.9

Version 6.9.0 Changelog (2018-11-05)

New Features

  • 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

  1. 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
  2. We now do the q/Q operator nesting limit calculation properly, taking only individual streams' nesting into account
  3. Blend mode (BM) is now allowed to be set to "Compatible" in PDF/A-1 mode
  4. The entire document is now checked for Metadata object stream dictionaries that contain the Filter key, in accordance with clarification in TechNote 0010 (A017)
  5. 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
  6. Added check for DeviceN colorant number implementation limit
  7. Fixed dictionary size implementation limit check - used to allow 8190 entries instead of 4095
  8. Added checks for real number magnitude implementation limits
  9. Added checks for string length implementation limits
  10. Added support for XMP metadata encoded in UTF-32
  11. Fixed bug that caused crashes while processing PostScript Type 4 functions with invalid numbers of arguments
  12. Added check for character identifier (CID) magnitude implementation limits
  13. Disallowing OpenType fonts (to match other vendors' behaviour) and unrecognized font subtypes
  14. Added check for BaseFont entry for non-Type3 fonts
  15. Added checks for FirstChar, LastChar, and Widths entries and validation of their contents for non-standard simple fonts
  16. Removed font loading as a validation step, to match other vendors' behaviour
  17. Added XMP value type validation
  18. Allowed XMP dates to have timezones
  19. Added fix for checking colorspace device independence for all referenced colorspaces, not just the ones that are used
  20. The presence of PresSteps is now flagged in validation mode too, not just convert mode
  21. Page dictionaries with AA keys are now flagged (in PDF/A-2 mode or greater)
  22. 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
  23. 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"
  24. Added a check for empty values of ID keys in file trailer dictionary in PDF/A-2 mode or greater
  25. 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"
  26. Added flagging of missing StructTreeRoot for PDF/A-1a, 2a, and 3a
  27. Added fix for XMP parsing that allows more thorough syntactical validation
  28. More thorough detection of the disallowed usages of transparency (matching what other vendors do)
  29. Added fix for page dimensions validation
  30. Inconsistent font Widths are now only flagged for embedded fonts
  31. Added CharSet string validation for embedded Type1 fonts vis-a-vis font program glyph names
  32. Removed XMP amendment (pdfaid:amd) contents validation, matching other vendors' behaviour
  33. Updated the default PDF/A version mode from 1B to 2B in both SDK and command-line tool
  34. Convert mode no longer outputs both "Z" and "00'00" hour/minute information when fixing dates within the PDF Info dictionary
  35. We now only check for correspondence between PDF Info and XMP in PDF/A-1 mode
  36. Fixed process colorant handling; Components is now treated as an Array, not a Dict
  37. 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
  38. 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
  39. Convert mode now removes notdefs from page Contents streams
  40. Convert mode now replaces invalid UTF-8 strings

Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales