September 2024
Fixed issue affecting some TIFF images on some platforms.
August 2024
Added support for loading very large XML documents, and added the new command-line option --xml-parse-huge to enable this on Linux systems with versions of libxml2 older than 2.11.0.
Fixed an infinite loop that can be triggered by empty multi-column layouts.
Fixed a potential crash at program exit if background threads make HTTPS requests using OpenSSL.
Fixed a potential crash affecting break-after: avoid in multi-column layout.
Fixed an issue affecting OpenType mark-to-mark positioning for some Arabic fonts.
Disabled ligatures when letter-spacing is non-zero.
Fixed an issue with some Thai fonts that require the OpenType liga feature.
Updated the default serif and sans-serif fonts and included the Noto font family for all scripts.
Restricted the painting of positioned table cell backgrounds in tables with collapsed borders, so that the background does not overlap with the borders, thus matching browser behaviour.
Allowed the prince-lang CSS property to specify element language for tagged PDF.
Fixed a bug with resolving cyclic margins and percentages.
Fixed precision issue affecting some SVG images.
Fixed issue where percentages are resolved incorrectly in SVG x/y attributes.
Updated prince --credits to include more version information for the libraries that Prince uses.
February 2024
Prince now detects infinite loops when resolving cross-references.
Fixed issue where form controls are treated as having the wrong min/max width.
Changed the default behaviour for certificate revocation checks to ignore failure due to missing or offline distribution points for the revocation check lists. This can be disabled with the new command-line option --no-ssl-revoke-best-effort. This option only has effect on Windows.
Fixed issue affecting Prince on Windows if binary path contains non-ASCII characters.
October 2023
Improved subsetting of OTF fonts (OpenType with CFF outlines).
Fixed an issue where the background and styling on iframe body and html elements could be lost.
Allowed prince-pdf-tag-type: Formula | Figure to apply to non-image elements.
Updated libwebp version to fix CVE-2023-4863.
Updated libcurl version to fix CVE-2023-38545.
Fixed an issue affecting the JavaScript in operator and symbol values.
Added support for the HTML wbr element.
Added a workaround for an issue where table borders could affect Acrobat Reader's "Export to Excel" feature.
February 2023
Revert to the 8-bit "standard encoding" approach used for text in Prince 14 as the CMap dictionary approach is unfortunately not supported for PDF editing in Acrobat.
Fix issue where some fonts with symbol encoding cmaps could use the wrong glyphs when subset.
Adding Note and Reference PDF tags to the prince-pdf-tag-type CSS property.
November 2022
PDF forms can be created from HTML forms with the --pdf-forms option.
PDF comments/annotations can be added using the
prince-pdf-annotation CSS properties.
Support for ES6 lexical scopes with let/const declarations.
Support for the ES6 Map and Set classes.
Support for the ES6 Symbol class and values.
Support for ES6 iterators.
Support for ES6 for-of loops.
Support for ES6 arrow functions.
Support for the JavaScript String fromCodePoint method.
Support for the JavaScript String codePointAt method.
Support for the JavaScript Object.getOwnPropertySymbols method.
Support for the JavaScript Element classList property and DOMTokenList interface.
Changed behaviour of regexp literals to match recent JavaScript specs.
Added stubs for the XMLHttpRequest getResponseHeader and getAllResponseHeaders methods.
Support for the WebP image format.
Support for the AVIF image format.
Support for Unicode 15.
Support for the Sinhala script.
Support for the Khmer script.
Applied Unicode mark reordering to more scripts, not just Arabic and Indic scripts.
Applied correct mark decomposition and reordering for Lao script.
Support for fragmentation and correct sizing for multi-line flex row containers (flex-wrap).
Support for align-self: stretch for flex items in a fragmented flex row container.
Support for wavy and double text-decoration styles.
Support for the CSS text-decoration-line/color/style properties.
Support for the text-underline-position property.
Added the options --ssl-no-revoke and --ssl-revoke-best-effort for Windows.
Added the option --fail-stripped-transparency to fail when
transparent images are used with a PDF profile that does not support
transparency.
Added the option --fail-invalid-license.
Added the option --pdf-xmp-metadata to include the HTML metadata
in an XMP packet even when not required by the PDF profile.
(also available via the PDF.xmpMetadata property and and the
pdf-xmp-metadata job field).
Renamed the --cookiejar option to --cookie-file.
Provided a universal binary for MacOS that supports Apple Silicon and Intel architectures.
Support for the HTML noscript element.
Improved the appearance of HTML select elements.
Improved the appearance of HTML radio buttons when PDF Forms are not enabled.
Disabled HTML iframes by default and added an --iframes option to enable them.
Prevented prince-pdf-script and
prince-pdf-event-scripts CSS properties from accessing files or
URLs and added new command-line options for this purpose.
Improved performance of style sheets with many class selectors.
Fixed bug in flex column layout that could lead to overlapping content.
Improved treatment of break-before: avoid so that it can pull partial content from the previous block instead of pulling the entire block to the next page.
Fixed bug affecting multi-column layouts with zero line-height.
Fixed column width issue with auto table layout in shrink-to-fit contexts, like nested tables and floats.
Fixed issue with box-decoration-break: slice and spanning cells in tables with collapsing borders.
Better support for relatively positioned table cells.
Preserved leading newlines for white-space: pre, pre-wrap, and pre-line.
Improving handling of trailing spaces for white-space: pre-wrap.
Fixed incorrect positioning of absolute positioned content within inline blocks.
Fixed incorrect positioning of absolute positioned content within relatively positioned inline elements.
Fixed incorrect paragraph breaks caused by absolutely positioned blocks inside inline content.
Improved color space handling of PNG images with sRGB/cHRM/gAMA chunks but not iCCP chunks.
Paletted PNGs are now embedded as indexed color images instead of expanded.
Avoided unnecessarily re-rasterising SVG masks where possible.
Improved the performance of complex font shaping.
Fixed issue where font-variant: prince-opentype(...) would disable Arabic and Indic shaping.
Fixed performance issue affecting some CFF fonts such as Noto Sans SC.
Fixed below-base mark reordering for Thai script.
Fixed bug affecting rare combination of OpenType GPOS positioning features.
Renamed embedded font subsets to avoid name clashes in documents that include multiple subsets of the same font.
Fixed bug where the JavaScript Function.bind method would not support constructor invocation or arguments.callee properly.
Fixed JavaScript issue where changing the length of large sparse arrays could be very slow.
Speed up JavaScript DOM live node lists returned by getElementsByTagName and getElementsByClassName.
Fixed the enumeration order of JavaScript properties with integer keys.
Fixed issue where automatic semicolon insertion could affect the use of JavaScript keywords like return as property names.
Fixed performance issue affecting tagged PDF.
Avoided inserting extra P structure element in tagged PDF for paragraphs containing only figures and/or floats.
Avoided generating some unnecessary Span elements in the tagged PDF structure tree.
Fixed bug where run-in elements could break the tagged PDF structure tree.
Fixed crash affecting some very large documents.
Workaround Acrobat issue triggered by certain uses of bfrange in PDF ToUnicode mappings.
Fixed the XMP serialisation of the meta keywords value.
See the release history for earlier versions of Prince.