Release Notes for Prince 13

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.

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.