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.