Release Notes for Prince 13

Please note that the behaviour of line-height: normal has changed from Prince 12. In the past, line-height: normal was equivalent to line-height: 1.2, but now it will use the recommended value from the current font, which is typically a little smaller, thus changing the output. Customers who preferred the old behaviour can get it back by specifying a line-height value of 1.2.

Prince 13.6

December 2020

Platform Support

Signed and notarised Prince binaries to avoid warnings on MacOS Catalina.

Support for SSL version TLSv1.3.

Tagged PDF

Fixed bug involving absolutely positioned blocks inside flexboxes in tagged PDF.

Fixed bug involving absolutely positioned table cells in tagged PDF.

Fixed issue where inline floats could break tagged PDF reading order.

Fixed tagged PDF accessibility for the list-style-image property.

Support for the prince-alt-text and prince-expansion-text properties on list item and footnote marker pseudo-elements.

Non-breaking space characters no longer create span structure elements in tagged PDF.

Bug Fixes & Improvements

Avoids hairline cracks where possible between box border segments.

Fixed issue where spans containing blocks can lose styling when they are split.

Improved quality of Gaussian blurs and filter accuracy in SVG and CSS filters.

Improved bounding boxes for Bézier curves used in links and clipping paths in SVG.

Fixed letter-spacing in SVG when used with the text-anchor property.

Fixed issue where the JavaScript RegExp.prototype object was not a RegExp itself.

Fixed bug in JavaScript RegExp syntax involving escaped character classes [\]].

Reduced memory leaks in Prince --control mode.

Prince 13.5

March 2020

Fixed font subsetting issue affecting some TrueType fonts.

Improved performance for long documents using OpenType fonts.

Updated curl version to fix an issue with AltNames on Windows 7.

Prince 13.4

March 2020

Support auto, clip, and scroll values for the overflow property.

Fixed issues affecting the sizing of inline blocks.

Fixed an issue where floats could sometimes fail to fit in the available space.

Fixed a performance regression affecting system fonts on Windows.

Fixed an issue affecting some URLs with percent-encoded characters.

Prince 13.3

February 2020

Support for OpenType reverse chaining contextual single substitutions, as used e.g. by the "Numderline" font.

Fixed an issue where CMYK colors were unnecessarily assigned a default ICC profile instead of being left as device-dependent.

Worked around an issue affecting buggy fonts, where the location table offsets point past the end of the glyph table.

Prince 13.2

February 2020

Support rendering intents for color conversion.

Support column-span: none by treating it as column-span: 1.

Support custom list markers for PDF/UA.

Created official Prince Docker images.

Added the Segoe UI Symbol font as a fallback serif font on Windows.

Fixed issue affecting the init feature in some fonts for Indic text following punctuation characters.

Accept non-empty glyphs with zero contours, which are very rare but technically legal.

Fixed bug affecting new versions of the Baekmuk Batang font.

Fixed bug affecting the JavaScript Array slice method applied to arrays with undefined values.

Fixed bugs affecting DOM attribute methods and namespaces, for example setAttributeNS.

Fixed issue where PNG images could fail to load if they contain large non-essential chunks.

Fixed bug affecting XInclude and external entities in XML documents loaded from standard input.

Prince 13.1

December 2019

CSS Support

Added support for CSS variables in @page rules and margin boxes.

Changed the @page rules to inherit from the document root element.

Extended the property prince-pdf-tag-type to support the Artifact and Table values.

Bug Fixes & Improvements

Fixed an issue affecting Thai line-breaking support.

Fixed an issue that could affect loading XML documents from Windows UNC paths.

Prince 13

November 2019

Fonts

Support for WOFF2 fonts.

Support for subsetting for OpenType fonts with CFF outlines.

Support for the Indic2 OpenType shaping model needed for recent fonts such as Noto Serif Devanagari and Nirmala.

CSS Support

Support for CSS variables (aka custom properties).

Support for the CSS3 box-shadow property.

Support for the CSS3 text-shadow property.

Support for the object-fit and object-position properties.

Support for fragmenting single-column/row flex containers across multiple pages.

Accept -prince- as a vendor prefix for Prince-specific CSS properties and @-prince for at-rules like @-prince-pdf and @-prince-color.

Added an optional same-window / new-window value to the prince-pdf-link-type property.

Support target-counter() for the footnote counter to allow multiple references to the same footnote.

Initial support for min-content and max-content values on the width and height properties (does not affect auto table layout yet).

Support for 2-value syntax for background-repeat.

Support for 3-value and 4-value syntax for background-position.

Extended the prince-pdf-script property to take URL values for external script files.

Support for a new prince-pdf-event-scripts property for adding Acrobat JavaScript events to PDF files (eg. on will-save, will-close, etc.)

Support for equal gradient stops at offset 0.0 and 1.0.

Support for new background-attachment: fixed bleed mechanism for extending the @page background into the bleed area.

Expanded values for prince-pdf-tag-type and moved defaults to the HTML style sheet.

Added CSS properties to specify alternate text and acronym expansion text for tagged PDF.

Added the @prince-pdf property prince-pdf-display-doc-title, needed for PDF/UA-1.

Support for the HTML main element by applying display: block to it in html.css.

Support for an optional second argument to the leader() generated content to specify a minimum width.

Support for CSS and TrueType font-weight values that aren't multiples of 100.

SVG Support

SVG images can be reused without increasing PDF file size.

Improved support for SVG sizing, scaling, and aspect ratios to be more compliant with the specifications and interoperable with web browsers.

Support for SVGs without intrinsic width/height or aspect ratio.

Support for SVG filter inheritance using xlink:href.

Support for nested baseline-shift in SVG.

Support for SVG gradient spreadMethod repeat and reflect using PostScript function based shading.

Support for spot colors in SVG and CSS gradients.

Javscript Support

Support for comment nodes in the JavaScript DOM.

Support for the JavaScript Array fill() method.

Support for the JavaScript Array reduceRight() method.

Miscellaneous

Support for loading hyphenation dictionaries from HTTP URLs.

Support for a fail-safe mechanism by adding new command line options --fail-dropped-content, --fail-missing-resources, and --fail-missing-glyphs and a new Prince.failStatus JavaScript variable.

Bug Fixes & Improvements

CSS

Fixed some bugs with background-repeat: round|space.

Fixed marker auto orientations in some edge cases.

Fixed bug where page floats with unless-fit that occur at the end of a block may incorrectly overlap in-flow content.

Fixed make_flex_cross_items: none internal error affecting flex box layout.

Fixed bug affecting list-style: none inside.

Fixed bug where the word-break property breaks Arabic text.

Fixed issue where a font may not be found for italic Arabic.

Fixed bug affecting fonts with no English font family name.

Compute relative font-weight according to CSS2.

Do not artificially embolden or slant fonts if they are referenced from @font-face rules that already claim they are bold or italic, even if the font data itself does not.

Fixed bug where large floats that span multiple columns can trigger unpackable block errors.

Fixed bug where column floats are not placed at the very bottom of the column area in the presence of spanning floats.

Changed the behaviour of line-height: normal to use font metrics in order to more closely match browsers. Please see our migration guide for details.

Use case-insensitive attribute value tests to support HTML 4 in the default style sheets.

Changed prince-pdf-page-colorspace: auto to use the output intent color space or the destination color space when color conversion is enabled.

Fixed issue where fixed heights were not respected for elements with unbalanced multi-column layouts.

Improved behaviour of prince-snap for column floats.

Allowed the convert-colors option to be disabled for individual elements by means of the prince-pdf-color-conversion property.

Changed shrink-to-fit on @page rules so that it resets after each forced page break, allowing it to apply to individual named pages.

Don't treat blocks with a specified fixed height as page-break-inside: avoid by default.

Changed leaders so that they expand to fill the available space when used in shrink to fit contexts like floats and inline blocks.

Allowed the CSS content property to override MathML and SVG elements.

Don't generate empty Lbl tags for lists with no marker content in tagged PDF.

Draw text-underline below text instead of above and omit text-decoration from images and out of flow elements.

Avoid inserting unnecessary blank pages after large fixed height blocks that overflow the previous page.

SVG

Fixed issues affecting filters applied to SVG root elements in inline and external images.

Fixed feTile when filter sub-region has non-zero offset.

Fixed some other SVG conformance issues raised by resvg test suite.

Fixed issues affecting SVG dominant-baseline auto and use the correct font size for SVG baseline-shift super/sub.

Fixed bug affecting SVG gradients with transparency inside a CSS transform.

Improved placement and sizing of SVG images embedded via img, object, background-image, canvas drawImage(), feImage, etc.

Draw text decoration due to ancestors of SVG text elements.

Fonts

Updated definition of default serif font-family for CJK languages.

Added the Takao fonts used for Japanese on Ubuntu to the definitions in fonts.css for the default serif and sans-serif fonts.

Avoid breaking around a non-breaking space character even next to CJK text.

Workaround for an Acrobat issue where text in some fonts could include a trailing invalid glyph.

Workaround for a bug in MacOS Preview affecting OpenType CFF fonts using more than 255 glyphs.

Miscellaneous

Allow specifying a PDF output intent without a PDF profile and in the absence of color conversion.

Fixed issue where Prince demo stamp does not pass Adobe accessibility check.


See the release history for earlier versions of Prince.