This is a development roadmap for Prince that lists upcoming features and improvements. Feature priority is determined by customer feedback, level of difficulty, resource availability, and compatibility with other development work. Please note that the order of items in the roadmap is not guaranteed and may change at any time.
Last updated 9 August 2020
Don't process XIncludes or external entities/DTDs in SVG images.
Support the CSS3 font-variant-caps property (small-caps only for now) and make
font-variant a shorthand property for this.
Support the CSS3 font-kerning property.
Support font-variant-caps: all-small-caps.
Avoid hairline cracks where possible between box border segments.
Use ⯑ as the fallback character for missing glyphs instead of '?'.
Add "no-embed" option to prince-pdf-color-conversion.
Improve bounding boxes for Bézier curves used in links and clipping paths.
Support the font-variant-numeric property.
Prince.registerPostLayout(func) API and --max-passes command-line option.
Fix issue where spans split because they contain blocks can lose styling.
Improve quality of Gaussian blurs and filter accuracy.
Support the xlink:href attribute for external scripts in SVG.
Fix letter-spacing in SVG when used with the text-anchor property.
Support color emoji fonts in CBLC/CBDT format, such as Noto Color Emoji and
JoyPixels (limited to 256 emoji per font for now).
Fix bug where min/max-width/height properties clamp negative values to zero
instead of rejecting them.
Support emoji tag sequences (needed for some flag emoji).
Support fonts with Big5 encoding and no Unicode cmap.
Support the textLength attribute in SVG.
Support more than 256 emoji per font.
Support emoji when rasterising and in filters.
Add --raster-jpeg-quality option.
Support color emoji fonts in Apple sbix format (some limitations may apply). (ref)
Support color emoji fonts in SVG in OpenType format. (ref)
Investigate issues affecting memory usage in Prince --control mode. (ref)
Add a @prince CSS rule for use hiding Prince-specific CSS declarations from other user-agents.
Unicode normalisation issues. (ref)
Support the HTML img srcset attribute. (ref)
Fix bug in which forced left/right page breaks can incorrectly extend a named page sequence. (ref)
Fix bug in flex column layout that can lead to overlapping content. (ref)
Fix issue in which using prince-script() with the footnote-marker pseudo-element gives the wrong counter value. (ref)
Support the browser hack for fragment URLs in CSS. (ref)
Fix bug affecting percentage widths in flexbox column layout. (ref)
Fix bug affecting "white-space: pre-wrap". (ref)
Fix bug in which floats with "display: block" can break paragraphs. (ref)
Improve rendering of adjacent border segments in tables with collapsed borders. (ref)
Investigate stacking order of table cell backgrounds and collapsed borders in the presence of relative positioning. (ref)
Sign Prince binaries to avoid warnings on MacOS Catalina. (ref)
Support text-decoration-skip-ink for underlines that avoid glyph descenders. (ref)
Devise a CSS mechanism for numbering lines. (ref)
Support new "isolate" values on CSS unicode-bidi property, needed for HTML5 bdi element. (ref)
Improve Danish hyphenation dictionary.
Allow the prince-pdf-color-options property to be applied to individual elements. (ref)
Provide a mechanism to disable column balancing for all pages, not just the last page. (ref)
Support 'align-self: stretch' for flex items in a fragmented row container. (ref)
Fix bug in height calculation of fragmented flex row containers. (ref)
Fix cursive positioning issue affecting Noto Nastaliq Urdu font. (ref)
Support underlining portions of an Arabic word without breaking cursive connection. (ref)
Support Vietnamese in the Verdana font and other fonts without OpenType positioning tables.
Support CSS grids. (ref)
The root element background should bleed to the trim box if there are no margins, padding, or borders on the page.
Fix hairline cracks between page margin boxes by unifying them into a single rectangle when adjacent boxes have the same background color. (ref)
Fix bug where padding on lists and list items leads to incorrect placement of list item markers. (ref)
Change the SVG feBlend filter to use PDF transparency groups instead of rasterising when possible.
Investigate whether it is possible to support the "BackgroundImage" source for SVG filters. (ref)
Support the CSS mix-blend-mode property. (ref)
Reduce memory usage when filtering many large images. (ref)
Reduce memory usage when rasterising very large images. (ref)
Investigate issue where overriding counter-reset on list elements produces unexpected behaviour. (ref)
Fix issue affecting layout of tables with a specified height. (ref)
Treat hyphen-minus and the U+2010 hyphen character consistently for hyphenation and word-breaking purposes.
Optimise the window.getComputedStyle method, which recomputes the style environment unnecessarily. (ref)
Support the font-size-adjust property. (ref)
Fix issue where whitespace can collapse incorrectly around generated content returned by a script function that has been delayed due to a counter. (ref)
Fix dotted borders, which can look ugly when the border is very thick. (ref)
Support a mechanism for creating file attachment annotations. (ref)
Support ES6. (ref)
Investigate issue with MacOS X install script and execute permissions. (ref)
Fix bug where CSS transforms on tables do not affect the table caption. (ref)
Support CSS transforms on SVG elements. (ref)
Support referencing SVG filters from the CSS filter property.
Investigate issue with HTML comments inside script elements. (ref)
Allow linebreaks after em-dashes. (ref)
Investigate issue where mixed Chinese and Latin text can be misaligned in vertical writing modes. (ref)
Support vertical-rl writing mode. (ref)
Support the text-emphasis properties. (ref)
Support the HTML noscript element properly.
Support HTMLTextAreaElement.value property (needed for ABC.js).
Investigate zero-width space on a line of its own following forced line break. (ref)
Fix issue where white-space: pre-wrap does not work the same as browsers. (ref)
Support alternate catalog locations. (ref)
Support dictionary based line-breaking for Japanese text. (ref)
Support SVGTextContentElement.getNumberOfChars() method (needed for ABC.js).
Try harder to find suitable fallbacks for missing glyphs, eg. by searching all available fonts on the system.
Add warning messages for CSS property values that are syntactically valid but are not recognised by Prince. (ref)
Fix bug affecting automatically generated anonymous table boxes inside absolutely positioned blocks. (ref)
Change the rendering order of rowspan table cells to fix text search across line break issue in Acrobat.
Support 256-bit PDF encryption.
Fix bug affecting table captions. (ref)
Fix bug affecting inline footnotes. (ref)
Disambiguate document filenames to ensure links work. (ref)
Support the HTML picture tag. (ref)
Support continuation markers for elements that break lines or break pages. (ref)
Support the HTMLElement classList add/remove methods. (ref)
Support scoped @font-face rules in iframes. (ref)
Support text-transform for Turkish, and other languages with different case rules. (ref)
Investigate layout of blocks with "overflow: hidden" that should be pushed aside by floats. (ref)
Investigate disappearing floats inside relatively positioned table rows. (ref)
Fix bug where floats can overlap, even if they have clear applied. (ref)
Provide a mechanism for breakable spaces of varying widths (eg. thin space, hair space).
Allow prince-script() to be used in the counter-reset and counter-increment properties. (ref)
Fix bug where "page-break-after: always" applied to page floats can also cause a page break before the page float.
Extend getComputedStyle to return used width/height in some cases, for compatibility with web browsers.
Change column rules so that they don't overlap spanning column floats. (ref)
Fix bug where SVG width behaves differently depending on whether it is specified as an attribute or a style property. (ref)
Support justification of lines that don't contain spaces. (ref)
Handle links in non-repeated SVG background images? (ref)
Support CSS3 properties for control of justification. (ref)
Add a mechanism to return image URLs from prince-script functions. (ref)
Support ES6 Map class needed for MathJax 3. (ref)
Update Prince wrappers to check if executable exists and is accessible. (ref)
Make footnotes work better inside long table cells. (ref)
Design a mechanism for page headers/footers with dynamic height. (ref)
Support multiple table header and footer sections similarly to browsers.
Design a mechanism for changing table header/footer content on different pages. (ref)
Design a mechanism for specifying whether table header/footer/caption elements repeat on every page or not. (ref)
Design a mechanism for styling content differently depending on which column it appears in. (ref)
Design a mechanism for changing from one column to two on the second page. (ref)
Support the CSS3 border-image property. (ref)
Support TIFF CCITT Group 4 fax encoding format for compressed images. (ref)
Fix bug affecting fallback of the degree celsius character. (ref)
Fix bug where bookmarks are out of order due to "float: top". (ref)
Investigate issue involving max-height on blocks containing images. (ref)
Disable ligatures when letter-spacing is enabled.
Fix bug where line numbers for error messages in script and style elements are relative to the start tag, not the start of the file.
Fix bug affecting MathML msubsup with empty first element. (ref)
Integrate the STIX Fonts with Prince for improved MathML support. (ref)
Support scoped style elements. (ref)
Add man page to all Linux packages. (ref)
Provide a mechanism for automatically breaking long words that overlap narrow table cells or columns. (ref)
Be more selective about breaking lines after arbitrary hyphens. (ref)
Support AES encryption for PDF files. (ref)
Links to IDs in the same document should still work even if base URL is different. (ref)
Add new options to the PHP wrapper. (ref)
Additional ideas for improvements to footnotes. (ref)
Make empty footnote calls not create a line box. (ref)
Investigate automatic page renumbering in headers/footers. (ref)
Support kashidas for the justification of Arabic text. (ref)
Text labelled with the "gb2312" encoding should be decoded using the newer backwards compatible "gb18030" encoding.
Fix bugs affecting string-set applied to display: none elements. (ref)
Enable shrink-to-fit by default, ensure that it isn't fooled by invisible overlapping blocks, and that it applies to all pages. (ref)
Fix bug where letter-spacing is not applied elegantly. (ref)
Fix bug where artificially slanted text is displayed incorrectly on landscape pages. (Note: this appears to be caused by broken printer drivers, and requires generating a new slanted font). (ref)
Support the xml:lang attribute to determine the language used for selecting OpenType layout features.
Support graphite font tables. (ref)
Support the new font-variant properties for accessing numeric OpenType features described here.
Allow non-displayed elements such as title to create PDF bookmarks. (ref)
Fix bug where named strings are not updated in table headers and footers. (ref)
Support the "column-break-inside" property. (ref)
Support the HTML align and valign attributes correctly so that valign inherits and align also applies to blocks. (ref)
Fix bug in which leading newline characters are stripped from absolutely positioned inline elements with white-space: pre.
Support standard icc-color mechanism for including CMYK colors in SVG. (ref)
Specify a scale for pages when crop marks are enabled so that when they are viewed in Acrobat the trim box will fill the window. (ref)
Print the filename and line number if available when warning of missing glyphs for certain characters.
Support Arabic subtending marks, U+600 to U+603.
Provide a mechanism similar to the widows/orphans properties for controlling page breaking in lists and tables. (ref)
Add optional warnings for page breaks that leave too much space at the bottom of pages and content that overlaps the page boundaries.
Support creating multiple PDF output files, for example one PDF file per chapter of the input document.
Support glyph scaling for justification.
Fix bug where multiple floats can overlap if they are pulled out of their containing block by negative margins. (ref)
Fix bug affecting table headers repeated on multiple pages in tables with collapsed borders. The width of the collapsed bottom border of the table header needs to be recalculated for each page that the table header is repeated on. (ref)
Support making generated PDF files commentable in Acrobat Reader. [This may not be possible as it requires a digital signature from Adobe, and is unnecessary from Adobe Reader X onwards anyway]. (ref)
Fix bug in which Prince is ignoring fonts on MacOS X if the font name
contains the modifier "Book" instead of "Regular" or "Roman".
Fix bug in which Windows-style CR/LF newlines in
elements in HTML documents (not XHTML documents) incorrectly cause double line
Add further support for the HTML textarea element. Support the rows
attribute, change white-space to pre-wrap and clip text that overflows.
Fix bug affecting the prince-jpeg-quality property when applied to grayscale
Support the value attribute on the HTML li element, for explicitly specifying
the list item number.
Change @page background to cover entire page box, not just page padding area,
for consistency with the CSS3 Paged Media specification.
Fix bug in which
elements containing only floated or positioned content still have a non-zero
height, as if the content was still in the normal flow.
Fix performance regression in CSS parser.
Add --media command line argument to select available style sheets based on
their media type, eg. "print" or "screen"; default is "print".
Shrink wide web pages down to fit the paper width by adding a new property
to @page rules.
Change margin collapsing at the top of first pages. Currently, top
margins are thrown away at the top of every page, however they should be kept
at the top of first pages, for consistency with browsers and the CSS3 Paged
Support @font-face rules that specify
the URL in the src property.
Fix bug in which the aspect ratio of images with an explicitly specified width
and height is not preserved if the image width is reduced by the max-width
Fix bug in which tables ignore percentage height values.
Fix bug in which user induced column breaks incorrectly cause a page break
when there is content preceding the columns.
Fix Linux and MacOS X install script so that it can be run from any directory,
not just the current directory.
Release Prince 6.0 rev 2, including packages for Red Hat Enterprise Linux 3
and 4, SUSE Linux Enterprise Server 9, openSUSE Linux 10.2.
Support HTML anchors that use the name attribute instead of the id
Fix bug affecting vertical alignment of inline blocks whose content is longer
than their specified height.
Support the HTML iframe element.
Support line-breaking between images.
Support the clear attribute on the HTML br element.
Detect overlapping content when performing shrink to fit on pages.
Fix bug in which absolutely positioned content may be duplicated in some
Fix bug in which blocks in the normal flow with auto height and overflow not
set to visible are not expanding in height to fit descendant floats.
Fix bug in which images that occupy no space will result in PDF files that
cannot be opened by Acrobat.
Fix bug in which the page-break-inside property is being ignored on tbody
Support the old SVG MIME type "image/svg-xml", which was deprecated in
November 2000 but is still in use on some pages.
Fix bug in which images within hyperlinks are not always clickable unless they
fall within the bounding box of the link element, which is inconsistent with
the behaviour of web browsers.
Support HTTP authentication and add two new command line arguments,
--http-user and --http-password.
Support the alt attribute on the HTML img element.
Support links and cross-references into and out of footnotes.
Support absolute and relative positioning for elements that are taken out of
the normal flow and placed in a page margin box.
Support printing in the bleed area of the page when crop marks are enabled
and add a new property to control the size of the bleed area.
Improve performance for formatting long documents with lots of text.
Enable HTTPS support in libcurl.
Allow hyphenation regardless of text alignment.
Fix bug affecting large images loaded from data URLs on MacOS X.
Build a Prince package for FreeBSD 4.8.
Release Prince 6.0 rev 3.
Support line-breaking between Chinese, Japanese and Korean characters.
Improve performance of text hyphenation in multi-column layouts.
Fix bug where the page background image is not printing in the bleed area when
crop marks are enabled and some background properties are being ignored on
Fix bug affecting links between documents without fragment identifiers when
processing multiple input documents.
Fix bug where page headers and footers flowed to the start of the document
behave strangely when multiple input documents are being processed.
Support multiple pseudo-elements in CSS selectors so that generated footnotes
and list item markers can be styled. (For example, ::after::marker).
Fix bug affecting page breaking in tables with table-row-groups that have
Fix bug affecting page breaking in tables with cells that span many rows.
Fix bug affecting tables with baseline aligned cells that overlap the page
boundaries in some situations.
Fix bug in which complex tables can cause an internal error.
Update the .NET interface for Prince to add new Convert() methods
that take an input stream and a filename, or a filename and an output stream,
or a string and an output stream. Also, add a helper class that can be used as
a HttpResponse filter by ASP.NET pages.
Change install script to preserve the existing license file instead of
Release Prince 6.0 rev 4.
Add a new caption-page property for controlling whether table captions should
be repeated when a table is broken over multiple pages.
Stop libcurl from adding "Pragma: no-cache" headers to each HTTP request,
which can degrade performance when caching is desired.
Add new --http-proxy command-line argument for specifying a proxy server to be
used when retrieving resources over HTTP.
Cache failed HTTP requests to avoid repeatedly trying to retrieve the same
Add support for presentational attributes on the HTML hr element and
support for the HTML s (strike-through) element.
Improve margin collapsing behaviour for blocks that clear floats.
Improve page breaking of blocks with page-break-before/after: avoid.
Fix bug in which "page-break-after: always" is not correctly applying to table
Fix bug in which some pages will not be matched by the
:blank page class, even if they are actually blank.
Fix bug in which properties applied to page margin boxes are not taking the
specificity of the page selector into account when cascading.
Support the image/pjpeg MIME type as an alias for image/jpeg.
Support the HTML meta tag with a name of "Generator" by copying it into the
PDF "Creator" metadata field.
Fix bug affecting string-set with "first" page-policy when multiple documents
are in use.
Apply the page-break-inside property to table rows as well as cells.
Fix bug in which page-break-after: avoid can actually cause unwanted page
breaks when applied to the last element in a block.
Improve column balancing and the treatment of page floats and footnotes on
pages with columns.
Don't download Flash content referenced from the HTML object element.
Support the HTML nowrap attribute on table cells.
Support the deprecated HTML strike element.
Change the table border-spacing property to be inherited.
Correctly render HTML img elements that have an alt attribute but no src
Ensure that center margin box takes full width of page header if an empty
element is flowed to it and no left or right margin box has been
Fix bug affecting interaction between named pages and left/right page breaks.
Fix internal error caused by replaced elements with zero width.
Fix shrink-wrap issue when float contains table with specified width.
Fix page breaking issue when float is immediately followed by page break.
Fix bug affecting the currentColor keyword in SVG.
Add a new @prince-pdf CSS rule that can be used for applying Prince-specific
to generated PDF files. The primary use case for this property is making PDF
files that print automatically when opened.
Add a new Prince-specific property, "prince-pdf-page-mode", for specifying
whether the PDF bookmarks should be displayed when the PDF file is opened.
This property may also specify that the PDF should be displayed fullscreen.
Update Prince PHP interface to support basic HTTP authentication.
Add a new Prince-specific property, "prince-pdf-print-scaling", for specifying
whether pages should be scaled when the PDF file is printed. By default this
is left up to the PDF viewing application.
Fix bug affecting footnotes and page floats in content that has been flowed
into page margin boxes.
Fix bug affecting internal links on Windows.
Fix bug affecting automatic layout for tables with a specified width.
Build a Prince package for SUSE 10.
Release Prince 6.0 rev 5.
Fix bug affecting floats with negative margins that are wider than the
Fix bug affecting the style attribute in SVG.
Fix bug affecting style sheets that begin with a UTF-8 byte order mark.
Improve performance when hyphenation is enabled.
Avoid breaking after hyphens that follow or precede a number.
Fix bug causing line breaks after punctuation preceding a hyphenated word when
hyphenation is disabled.
Support "hyphens: prince-expand-all" to debug hyphenation patterns.
Fix bug affecting hyphenation of words adjacent to certain punctuation
Fix bug in which column floats and footnotes are not always placed at the very
bottom of the column.
Fix bug in which two words joined by punctuation such as em-dashes are
treated as one word for hyphenation purposes.
Fix issue affecting column width in automatic table layout with colspan cells.
Fix issue where multiple redundant error messages are produced if an image
can't be loaded.
Change warning level of glyph fallback messages.
Support the type attribute on HTML lists.
Support different list marker styles on nested HTML lists.
Fix bug in which "." is loaded if an HTML img element has no src
Fix bug in which sibling selectors are not always correctly applied.
Support prince-flow() as well as flow() on the content property.
Fix bug in which page-break-after: avoid can actually cause unwanted page
breaks when applied to the last row in a table.
Fix bug leaving unnecessary page break after page floats within named pages.
Add prince-page-group property to control when a named page group starts or
Fix bug affecting some tables with cells that span multiple columns.
Support rowspan=0 from HTML 4.
Fix bug affecting borders and margins applied to images.
Fix bug affecting columns containing large column floats.
Fix bug affecting width calculation for inline blocks.
Improve interaction between columns, page floats and footnotes.
Fix bug affecting mailto: links.
Support new prince-trim property to specify the size of the trim box when crop
marks are enabled.
Support external "cookie jar" files for specifying authentication cookies.
Change cross-reference links and bookmarks to link to the location of the
target content on the page, not just the top of the page on which the content
Fix bug affecting table cells that span rows and break across multiple pages.
Fix bug affecting the width of table cells containing text with
Fix bug affecting the width of table cells containing manually hyphenated
Don't use the specified HTTP proxy server for localhost URLs.
Support links to local PDF files with PDF open parameters.
Fix bug in default style sheets affecting HTML valign attribute on table
Improve treatment of landscape pages.
Support TrueType Collection fonts on Linux, FreeBSD and Solaris.
Fix bug in which RPM upgrade can overwrite existing license file.
Release Prince 6.0 rev 6.
Improve performance for documents containing many id attributes.
Fix where some font family names are hidden on Linux, FreeBSD and
Fix bug affecting Prince on Windows 2000.
Fix bug creating zombie processes when running Prince from CGI scripts on
Reduce memory usage for documents containing many elements and CSS rules, such
as documents with thousands of table cells.
Fix bug affecting the layout of inline elements with horizontal borders that
span multiple lines.
Fix bug affecting the width of tables with collapsed borders.
Support the text-decoration properties on table cells and rows.
Support the min-width and max-width properties on table cells.
Fix bug affecting hyphenated words breaking across pages.
Fix bug where the overflow property is ignored on table cells.
Fix bug where the page break properties do not apply inside table cells.
Allow block-level tables to be pushed aside by floats.
Fix bug affecting the hyphenate-before and hyphenate-after properties when
using non-ASCII hyphenation patterns such as Russian.
Fix bug affecting the resolution of TIFF images.
Fix bug on Solaris where bitmap fonts can hide TrueType fonts with the same
Change default styling on HTML <pre> element to add top and bottom
margin for compatibility with browsers.
Change default styling on HTML <br> elements for compatibility with
Release Prince 6.0 rev 7.
Support the image/jpg MIME type as an alias for image/jpeg.
Support "date" as a meta tag in HTML and XHTML documents.
Support repeating background images using PDF patterns to reduce file size.
Support tiling patterns in SVG.
Fix bug affecting the hyphenation of words with leading punctuation, such as
Ensure that ActiveX/COM interface does not pop-up message boxes on error.
Fix bug affecting the width calculation of cells in fixed-width tables.
Fix bug affecting line-height for inline elements when vertical-align is
Remove support for the text-height property, which has been dropped from CSS
Fix performance issue where Prince reloads SVG images each time they are
Fix bug affecting line height when small-caps are enabled.
Fix bug where text-decoration does not apply to page margin boxes.
Fix bug where progress counter is reset by page breaks in the document.
Fix bug where no Accept-Encoding HTTP header was being sent and responses
using gzip transfer encoding are not processed correctly.
Extend page borders into the bleed area as well as page backgrounds.
Fix bug where the column-break-before and column-break-after properties are
Fix bug where text-decoration does not apply to a span full of nbsp
Fix bug where only a limited number of documents can be added to the GUI in
Fix bug where some UTF-8 HTML files are incorrectly processed.
Fix bug where a vertical tab character in HTML files terminates parsing.
Release Prince 6.0 rev 8.
Support bidirectional text and layout.
This includes support for the UNICODE bidirectional layout algorithm, the CSS
direction and unicode-bidi properties, and the HTML dir attribute and bdo
Support text-transform for Greek, Cyrillic and other scripts, not just
Fix bug in which list item markers are not displayed on the right-hand side of
the list item in a right-to-left context.
Support bidi mirroring for paired characters such as brackets, parentheses and
Support different levels of boldness for the font-weight property.
Support Arabic shaping with OpenType fonts.
Support Devanagari shaping with OpenType fonts.
Add hyphenation dictionaries for more languages: da, de, el, es, fi, fr, is,
it, lt, pl, ru, sl, sv.
Support the OpenType mset feature for combining marks with base glyphs.
Fix bug affecting Arabic shaping where the joining class of some letters was
Support positioning of diacritical marks using the OpenType mark feature.
Support positioning of multiple diacritical marks using the OpenType mkmk
Support positioning of diacritical marks relative to ligatures.
Support kerning information found in OpenType fonts for the Latin, Greek and
Support the calt and rlig substitution features for Arabic.
Support the ccmp substitution feature for all scripts.
Support for cursive attachment positioning.
Support small-caps found in OpenType fonts.
Support Bengali shaping with OpenType fonts.
Support Gurmukhi (Punjabi) shaping with OpenType fonts.
Support Gujarati, Oriya, Tamil, Telugu, Kannada and
Malayalam shaping with OpenType fonts.
Synthesize bold and italic fonts in the PDF output when a true bold or italic
font is not available.
Optimise OpenType layout support by checking in advance whether a font
supports a particular feature, eg. kerning or ligatures.
Fix bug where the "inherit" keyword was not correctly applied to page margin
Allow footnotes to be specified using the float property.
Allow multiple page selectors on the same @page rule.
Improve font scanning on Linux.
Fix bug affecting Date meta element in XHTML.
Allow absolutely positioned blocks to extend beyond page border.
Break unbalanced columns to fit in blocks with specified height.
Fix bug where blocks with specified height could break across pages.
Support the box-sizing property.
Add a new property, prince-pdf-destination, to create named destinations in
generated PDF files.
Fix bug affecting TrueType Collection fonts on Windows.
Improve font scanning on MacOS X by using CoreText API.
Fix bug where margin box backgrounds do not extend into the page bleed area.
Fix bug where page background are rendered incorrectly on landscape pages.
Fix bug where Prince could fail to render some arrangements of floating blocks.
Fix bug affecting the height of blocks with "overflow: hidden" containing
Support four values for the prince-trim and prince-bleed properties, similar
to margins and padding.
Fix bug affecting the merging of related font subsets.
Add support for times to Date meta element in XHTML.
Fix bug where all pages in generated PDF files share the same resources
dictionary for fonts and images.
Add a new property, prince-pdf-link-type, to control whether web or file links
are created in generated PDF files.
Change the way @font-face rules are processed to follow the latest draft of the
CSS3 Fonts module.
Support the unicode-range descriptor on @font-face rules.
Allow the page counter to be incremented on block elements.
Automatically escape brace characters appearing inside URLs.
Support the new email input type defined in HTML5.
Expand the default fonts style sheet to provide @font-face rules for more
Add an experimental prince-opentype() value to the font-variant property for
accessing extra features found in OpenType fonts, such as decorative swashes
and old-style numerals.
Upgrade to libcurl 7.19.5.
Release Prince 7.0 beta 1.
Add --insecure option to disable checking SSL certificates (already exists as
undocumented option --ssl-blindly-trust-server).
Fix performance regression affecting multi-column layouts inside positioned
blocks and inline blocks.
Fix bug affecting text-align on narrow lines.
Assume character script is Latin if it would otherwise be "Common", eg. for
digits 0-9. This is necessary to correctly apply OpenType substitution
Support the name attribute on HTML anchors even when it differs from the id
Support fallback colors using in SVG paint specifications, eg. for the fill
Extend font-variant prince-opentype() value to support numbered
Fix bug affecting system fonts with multiple variant faces on MacOS X, like
Support the shorthand "font" property in SVG, and the font-variant and
Rename --ssl-ca-cert to --ssl-cacert and add --ssl-capath option for
compatibility with curl.
Support chaining contextual OpenType substitutions required for complex
Fix bug affecting OpenType substitutions with multiple replacement
Support chaining contextual OpenType positioning required for complex
Fix bug affecting the hyphenation of the last word in a paragraph containing a
Fix bug affecting the width of shrink-to-fit boxes (eg. inline blocks,
table cells and floats) containing multiple columns.
Use the PostScript name as the BaseFont name for embedded OpenType CFF fonts.
Fix bug where the SVG fill-opacity property was not inherited.
Fix bug where the HTML align attribute on <tr> elements does not affect
Add hyphenation dictionaries for more languages: pt.
Improve performance for long documents using fonts with OpenType layout
Support the arabic-indic style for counters and lists.
Fix bug where internal links to documents with /../ or /./ in the path name
are not resolved correctly.
Fix bug affecting footnote counters in right-to-left text.
Fix bug where float inside/outside doesn't work correctly in paragraphs that
span page breaks.
For Content MathML, don't print the base on <cn> elements if it is
Support embedding OpenType CFF fonts without requiring PDF 1.6.
Put back support for the hyphenate-lines property.
Release Prince 7.0.
Treat right-to-left and left-to-right bidi marks as non-printing
Improve handling of symbolic fonts with no Unicode charmap, such as Wingdings
and barcode fonts.
Fix bug affecting unquoted font-family names that include numbers.
Add prince-pdf-open-action property to specify actions such as printing that
should take place automatically when the PDF file is opened.
Change prince-pdf-link-type to apply to bookmark links as well as normal
Ignore invalid intrinsic resolutions in JPEG images.
Fix bug affecting collapsing borders for footers on tables that span page
Fix bug affecting line-breaking of string-set values used in flowed blocks.
Add prince-base-url() value to content property for accessing document
Fix bug affecting some OpenType chaining contextual substitutions.
Fix bug where hyphenation can prevent ligature formation.
Fix bug where margins can collapse through blocks with "overflow:
Support OpenType positioning rules with vertical placement.
Fix bug where non-embedded fonts can still be subset.
Fix bug where punctuation interferes with kerning and other OpenType
Fix bug where words containing apostrophes will not be hyphenated.
Fix bug affecting Fontconfig on Red Hat Enterprise Linux 4.
Support grayscale TIFF and PNG images without expanding them to RGB.
Support OpenType extension lookups needed for kerning with the Arno Pro font.
Support the OpenType GDEF table, needed for some Arabic and Indic fonts.
Fix bug affecting preformatted whitespace between spans in HTML documents.
Support the WOFF font
Support multiple x/y/dx/dy and rotate values on text elements in SVG.
Support bidirectional text layout in SVG.
Support the letter-spacing and word-spacing properties in SVG.
Fix bug affecting style sheets beginning with a UTF-8 BOM immediately followed
by an identifier.
Support Unicode characters up to U+30000.
Add new secret command-line option --no-artificial-fonts to disable
synthesised bold and italic fonts.
Support internal links in documents with multiple base URLs.
Support table-baseline property needed for
MathML for CSS.
Support the border-break property.
Support commonly used HTML5 elements, such as section.
Release Prince 7.1.
Fix bug affecting table cells that span rows and break across multiple pages.
Fix bug where space before commas in CSS selectors will result in rules being
Fix bug affecting positioned blocks inside justified paragraphs.
Improve line-breaking for Chinese text.
Add --http-timeout option to avoid waiting indefinitely for slow servers.
Support Chinese and Japanese counter styles for list numbering.
Support Persian counter styles for list numbering.
Fix bug where the type attribute was incorrectly affecting the list-style-type
for non-XHTML elements.
Remove max-width rule for img elements in the default HTML style sheets.
Change default value of prince-image-resolution property to "normal".
Fix bug affecting non-break space characters in SVG.
Support the <switch> element in SVG.
Fix bug affecting empty inline tables (and <select> elements).
Fix bug where counter scopes are incorrectly extended outside of parent elements.
Add default style sheet rule to hide HTML input elements with
Fix bug where the width property has no effect on page margin boxes.
Support XHTML style and link elements that occur in the document body.
Respect the xml:base attribute for XHTML link and style elements.
Support PDF attachments by adding a new --attach=FILE option and
"show-attachments" value for the prince-pdf-page-mode property.
Support device-cmyk() as alias for cmyk() color function.
Support Unicode characters beyond U+30000.
Add :nth() page selector.
Remove "line-height: none" from HTML sub/sup elements for browser
Fix bug leading to gpos warnings and introducing unnecessary kerning with
Fix bug where @charset rules will block @import rules.
Improve performance for fonts with many OpenType glyph substitution rules,
such as the SIL Charis font.
Fix bug where cmyk() and rgba() background colors are not being applied to
table rows and row groups.
Fix bug where text decoration does not work properly with text-indent.
Fix bug where the column-break-before and column-break-after properties only
work on direct children of an element with multi-column layout.
Allow the column properties to apply to table cells and list items.
Fix bug where forced page breaks in list items will cause the marker to be
Release Prince 8.0 beta 1.
Fix bug where column floats in nested multi-column layouts go to the outer
column, not the inner column.
Fix bug affecting "float: prince-column-top-if-necessary" on elements that are
not inside columns.
Fix bug affecting column floats and footnotes inside other floats, inline and
absolutely positioned blocks, and table cells.
Fix bug affecting empty leaders.
Be more aggressive when packing page floats on pages with balanced columns.
Change page vertical margin percentages to be resolved relative to page
height, not width.
Expand leaders before performing text alignment.
Support the prince-link property on pseudo-elements.
Support PDF bookmarks on pseudo-elements.
Fix bug affecting bookmarks in repeating table headers and footers.
Ensure location.href begins with "file://" for local file URLs as jQuery
Support inset/outset/ridge/groove/double styles for column rules.
Fix bug affecting OpenType positioning in the SIL Charis font.
Add new property, prince-pdf-page-label, to specify PDF page labels.
Release Prince 8.0.
Fix bug affecting page breaking of table rows with specified height.
Allow line-breaking in prince-script() generated content.
Support zero-width joiner (zwj) character in Arabic text.
Create Prince package for FreeBSD 8.2.
Use absolute path for file:// URLs in location.href property.
Support inter-character justification for CJK text with new
Support DOM style property on HTML elements.
Improve scaling of SVG when the viewport height is a percentage.
Allow overflowing content to continue across multiple pages.
Support MIME type parameter values in quotes, eg. charset="UTF-8".
Fix bug affecting table cells that span multiple columns.
Fix bug affecting ::first-letter pseudo-element and nested spans.
Fix bug affecting prince-column-footnote outside of multi-column layouts.
Support new command-line argument -l / --input-list for specifying multiple
input files in another file instead of directly on the command-line.
Extend prince-linebreak-magic property to apply to \ characters.
Fix bug affecting Unicode filenames and command-line arguments on Windows.
Support OpenType fonts with PostScript outlines (OTF/CFF fonts) when installed
as system fonts on Windows.
Support the ::first-line pseudo-element.
Rename prince-jpeg-quality property to prince-image-magic and add
Support evaluating <script> elements when they are added to the DOM.
Fix bug affecting inline-blocks longer than a page preceded by a float.
Fix bug affecting floats and hanging text indents.
Update SSL certificate authority file.
Support "visibility: hidden" on SVG elements.
Check the Panose proportion value in the OS/2 table when computing
font-stretch for TrueType/OpenType fonts.
it does not form the beginning of a quantifier.
Don't parse fragment identifiers (eg. #foo) in relative URLs used on the
command-line, treat them as filenames instead.
Fix bug where the background image for the footnotes area will be swapped
with the background image for the page float bottom area.
Experimental support for HTML5 with "-i html5" on command-line.
Release Prince 8.1.
Fix bug where column-span does not work correctly on tables.
Fix bug where column-span on nested elements eats preceding content.
Fix bug where apostrophe must be escaped in relative HTTP URLs.
Release Prince 8.1 rev 2.
Fix issues affecting links to content on landscape pages.
Fix bug where column-span within an element can affect target-counter and
string-set values for that element.
Fix bug affecting URL encoding of filenames that breaks internal document
Ensure DEB packages have Installed-Size field to avoid ominous warning.
Fix bug affecting OpenType positioning for the "Cabin" font.
Release Prince 8.1 rev 3.
when the radix is greater than 10, for consistency with web browsers.
Change special HTML DOM attributes like script.src to return "" instead of null
when they are not present, for consistency with web browsers.
Fix internal error triggered by large floats on small pages.
Fix bug on Solaris where long data URLs can cause CSS parsing to fail.
Fix bug affecting CSS3 Transforms where vertical translation offsets are
Workaround issue in MacOS X Preview affecting spot colors.
Fix bug where using RGBA colors can cause images to incorrect inherit the
Fix bug where the XHTML q element was using U+201D for German quotes instead
Fix bug where debug log messages could cause deadlocks for Prince wrappers.
Support the float property on the ::first-letter pseudo-element.
Fix bug affecting patterns in SVG that reference other patterns.
Fix bug triggered by DOCTYPE declaration with system identifier containing
Release Prince 8.1 rev 4.
Fix bug affecting SVG markers on transformed paths.
Support a default underline for fonts that recommend an underline of zero
thickness, like Hoefler Text on MacOS X.
Fix OpenType positioning issue causing some kerning pairs to be ignored, eg.
"..." for the Vollkorn font.
Avoid failing with unused_ref error if broken image cannot be loaded.
Fix bug where non-Base64 data URLs have all whitespace characters stripped.
Fix bug causing "Error 21" in Acrobat when saving encrypted PDF files.
Release Prince 8.1 rev 5.
Support the SVG stroke-miterlimit property.
Support absolute positioning on the @footnotes area.
Allow floats and footnotes to break across pages by default.
Support the max-height property on the @footnotes area.
Fix bug where footnotes in table headers and captions are repeated if the
table breaks across multiple columns or pages.
Support the transform and transform-origin properties on margin boxes.
Update Prince Java wrapper to add support for converting multiple input
Add convert method to Java wrapper that takes a filename/URL string for the
input document and an OutputStream for the PDF output.
Change the prince-link property so that it no longer affects the :link
Add a non-breaking space after footnote markers.
Support the background-size property.
Support multiple background images on a single element.
Support the background-clip and background-origin properties.
Support padding-box as a value for the box-sizing property.
Fix bug affecting tables with collapsed borders and cells that span rows
across page breaks.
option.selected, option.disabled, input.type, input.checked, input.disabled.
return uppercase values for HTML element names.
Fix bug affecting nested SVG patterns/gradients and SVG images used as
For tables with specified height, take specified row heights into account
before dividing table height across rows.
Fix bug in which shrink to fit blocks such as floats and inline blocks
will have an incorrect width when they contain tables with
cells that have a specified width.
Update Prince PHP wrapper to add support for converting multiple input
Support "text-overflow: clip | ellipsis".
Fix warning "get_gpos_adjust: pos_pair_unknown" triggered by complex OpenType
fonts, eg. some Hebrew and Syriac fonts.
Support OpenType font features for rendering Syriac text.
Draw crop marks so that they extend into the page bleed area.
Fix bug where pixel units in SVG are not being treated the same as unitless
Add "prince-footnote-policy" property that can push footnote calls to the next
page if there is not enough space to fit the footnote body on the same page.
Fix bug where background and border properties do not apply to :blank pages.
For SVG images without a viewBox attribute, use the width and height
attributes to determine the initial coordinate system.
Issue a warning when a footnote ends up on the following page from the
Support CSS white-space property and xml:space="preserve" on SVG tspan elements.
Support SVG tref elements.
Fix bug affecting CSS3 Transforms where matrix() translation offsets are
incorrect scaled and inverted.
Fix bug where page floats can overlap with table footers.
Apply border-break property to table elements.
Accept local(FontName) without quotes in @font-face declaration src property.
Support the text-decoration properties on SVG text elements.
Add IDs to generated PDF files to improve support for PDF/A and PDF/X.
Add Japanese fonts to default serif and sans-serif font families.
Support basic media queries.
Fix bug affecting :nth-of-type(n+4) and similar CSS3 Selectors.
Fix bug where prince-page-group can cause unwanted page breaks for elements
that span multiple columns.
HTML5: HTML elements should be in the HTML namespace.
HTML5: Support the menu element.
HTML5: Remove redundant warning when HTML elements have identical id and name
HTML5: Fix bug where a null byte in HTML files terminates parsing.
HTML5: Fix bug where text between table cells results in new table column.
HTML5: Fix issues involving special characters in script elements.
Fix DOM method document.createElement so that elements are created in the HTML
Support accessing attributes by name from the Element.attributes DOM property, needed
to support jQuery 1.9+.
Fix bug affecting some numbers in scientific/exponential notation in SVG.
Parse documents with no filename as HTML by default, not XML.
Enable new HTML5 parser by default for HTML documents.
Support "position: running(ident)" and "content: element(ident)" for flows
from CSS GCPM module.
Require Prince.addScriptFunc for script functions, and reduce memory usage for
Fix bug where negative margin-top can break the layout of following blocks in
Add a warning for cyclic @font-face definitions and avoid high memory usage in
Add an experimental --css-dpi=DPI option to change the default DPI value used
for pixel measurements.
Release Prince 9.0.
Support leader(dotted|solid|space) syntax shorthand.
Fix bug where HTML character references are ignored if they are not followed
by a semicolon.
Support content(first-letter) for named strings and other generated content.
Fix bug affecting UTF-8 characters and the UTF-8 byte order mark in CSS style
sheets loaded over HTTP.
Fix bug affecting Prince on 32-bit platforms when the document contains large
Support content(text) as an alias for content() for named strings and other generated content.
Avoid infinite loop when iframe includes its containing document.
Fix HTML bug where meta/link/title elements inside tables are not
taken out to the parent.
Upgrade statically linked Linux packages to use libxml2 version 2.7.8 or newer, to
get fix for apostrophe in referrer URL issue.
Release Prince 9.0 rev 2.
Update MathML operator dictionary to remove space around |abs| bars.
Change Debian packages to avoid overwriting license file when upgrading.
Fix bug where floats breaking across pages can cause other content to be
Handle documents with UTF-8 character encoding incorrectly labelled as UTF-16.
Fix bug in SVG where transparent shapes are drawn using the previously
Fix bug where prince-linebreak-magic and prince-text-replace properties do not
apply to the prince-base-url() or prince-script() generated content functions.
Fix bug where ::first-letter does not apply to hyphenated words.
Support RGBA and CMYKA TIFF images.
Add new CSS property prince-pdf-paper-tray to enable PickTrayByPDFSize flag.
Support "auto" value for prince-bleed and prince-trim properties, and allow a
bleed area without enabling crop marks.
Add prince-mark-length and prince-mark-offset properties to control the
appearance and position of crop marks.
Fix bug where crop marks may be drawn with an incorrect color.
Support q/Q length units (0.25mm) used in Japanese typesetting.
Upgrade MacOS X package to use libxml2 version 2.7.8 or newer, to
get fix for apostrophe in referrer URL issue.
Release Prince 9.0 rev 3. (partial release)
Release Prince 9.0 rev 4.
Fix minor bug where CapHeight is ignored in TrueType fonts with an OS/2
table newer than version 2.
Fix bug where images in SVG can be incorrectly affected by the fill-opacity
property applied to previous shape elements.
Fix slow rendering for some OpenType fonts (caused by ccmp feature in GSUB table).
Use dynamic linking for libcurl on MacOS X to fix an issue affecting Mavericks
Create a 64-bit binary for Prince on MacOS X.
Improve system font scanning on MacOS X to increase speed and fix issues
running Prince on Mavericks.
Change priority of SVG presentational attributes so they can be overridden by
other author styles.
Change HTTP authentication so that credentials are only passed if initial
request returns 401 response.
Set a non-zero process exit status for invalid command-line options.
Support 16-bit TIFF images.
Support Ubuntu 14.04.
Document the --no-artificial-fonts command-line argument.
Support Debian 7.4 "Wheezy".
Fix issues affecting "Open Folder" button in Windows GUI.
Fix bug where the XHTML q element was using U+201D for German quotes instead
of U+201C. (Fixed already, but missing on Windows!)
Release Prince 9.0 rev 5.
Support the HTML5 template element.
Support the href, rel, and type DOM properties on HTML link elements.
Support more HTML DOM element interfaces.
Support children, firstElementChild, lastElementChild, and childElementCount
Fix OpenType GPOS issue affecting mark placement for Ezra SIL Hebrew font.
Fix issue where HTML documents containing large comments are slow to load.
Fix bug where xml:space is ignored if applied directly to <svg>
Add default vertical margin to HTML list elements, for consistency with
Parse URLs in compliance with the new WHAT-WG URL specification.
Add new options for HTTP authentication, including the ability to provide
different authentication credentials to different servers.
Don't linebreak CJK text for white-space: nowrap | pre.
Fix bug where large border-radius settings can result in overlapping curves.
Support percentage values on border-radius properties, and clip images with
Support translate3d function in CSS transforms if Z coordinate is zero.
Remove unnecessary rule applying "max-width: 100%" to SVG elements in default style sheet.
Add prince-lang property.
Support the rebeccapurple color.
Apply "white-space: nowrap" to HTML nobr element.
Update Prince PHP wrapper to use bypass_shell to fix current directory issue
affecting cmd.exe on Windows.
Support the CSS word-break property.
Change prince-shrink-to-fit so that it only affects page body content, not
page headers and footers.
Update Prince wrappers to support error log reporting for all convert methods.
Update Prince ActiveX/COM wrapper to add support for converting multiple input
Change default value for --http-timeout option to 60 seconds.
Support prince-overprint() color function for CMYK and RGB colors.
Change the way local() works in @font-face src property so that it only refers
to system fonts and not other @font-face rules. (Add new prince-lookup() value
for old behaviour).
Add overprint mode argument to prince-overprint(), defaulting to overprint-mode-nonzero.
Support first-except page-policy value (eg. for string-set).
Fix bug affecting OpenType substitutions for below-base consonants in Indic
scripts such as Bengali.
Support font-variant in @font-face rules to handle separate small-caps fonts.
Change behaviour of height/min-height/max-height properties so that blocks are
not pushed to the next page unnecessarily.
Add --user-agent option to override the user agent string.
Change setOptions() method in Java wrapper to take multiple command-line arguments.
Fix bug for OpenType shaping of marks following ligatures that affected the
Arabic Typesetting font.
Support ICC color profiles in JPEG, TIFF, and PNG images.
Fix bug affecting the angle of SVG markers on curved paths.
Fix bug where SVG text can have wrong stroke width.
Fix bug affecting dx/dy attributes on SVG tspan elements containing
right-to-left scripts (eg. Arabic).
HTML fragments containing table elements.
Fix bug causing file descriptor leak when loading many XML documents.
Fix bug where artificially slanted text (for example, italic Chinese) is
invisible in SVG.
Fix bug where the SVG text-anchor property is not respecting bidi direction.
Fix bug where ::first-line can fail to apply correct to ::before and ::after
Prevent hyphenation after a fixed hyphen, to reduce awkward word breaks.
Reduce default page margin to 0.75in (54pt) and add --page-size and
Fix bug where non-ASCII characters in indentifiers break internal links.
situations that should be legal.
Fix bug where SVG clip paths may not work properly if they have specified
clipPathUnits as objectBoundingBox.
Fix bug where small scale matrices in SVG can cause rendering problems.
Fix bug that can cause deadlock for Prince wrappers.
Fix bug where long column floats can cause Prince to hang.
Try loading image files as SVG if they have an unknown type or extension.
Fix bug where very large numbers can cause problems (eg. z-index: 999999999999).
Fix bug where XInclude elements do not respect the --baseurl option.
Fix bug where XInclude does not support HTTP resources parsed as text.
Support 1-bit black and white TIFF images.
Support UTF-16 encoding for HTML documents.
Specify default transparency group for all PDF pages that use opacity.
Fix bug where SVG paths can be stroked even with stroke-width="0".
For SVG images without specified width/height, the viewBox should determine
the aspect ratio.
Fix bug where some options are not escaped by the .NET wrapper.
Release Prince 10.
Reduce memory usage for large documents with many style rules.
Fix bug where XInclude URLs can fail to work with absolute file paths on Windows.
Release Prince 10 rev 2.
Fix parser bug for CSS :nth-child() selector.
Fix broken --fileroot option.
Add new --remap option to map HTTP URLs to local file paths.
Support for grayscale TIFF images with alpha channels.
Accept Z coordinate for transform-origin property as long as it is zero.
Fix bug affect SVG shapes that are neither stroked nor filled.
Support two-page-left and two-page-right values for prince-pdf-page-layout property.
Change @page rules so that prince-rotate-body and shrink-to-fit do not apply
to page backgrounds or borders.
Fix issue affecting Windows GUI where multiple files will be parsed as XML
instead of HTML.
Release Prince 10 rev 3.
Fix bug in SVG paths where coordinates don't need to be separated by
spaces if they begin with a decimal point.
Add fallback rules for DejaVu LGC and Liberation fonts to default fonts.css
file for compatibility with Red Hat and CentOS.
Fix issue where very large SVG documents can cause Prince to crash.
Fix issue caused by Japanese fonts on latest public beta of MacOS X.
Remove unnecessary dependency on libgcrypt11 from Ubuntu DEB packages.
Fix bug affecting SVG text-anchor property in conjunction with dx attribute.
Fix bug affecting SVG dx attribute in conjunction with bidirectional text.
Fix bug affecting text using artificial italics surrounded by text that is not
using artificial italics.
Release Prince 10 rev 4.
Fix bug where overprint cannot be specified independently for fill and stroke
Fix bug where SVG markers can be clipped.
Fix bug affecting SSL downloads on some Linux platforms.
Fix bug that can prevent Prince from running on some Windows platforms.
Fix bug where CSS borders ignore opacity from RGBA colors.
Fix bug affecting SVG paths.
Release Prince 10 rev 5.
Fix possible crash caused by very large tables.
Fix parallel downloads on recent MacOS X versions, where curl uses
SecureTransport instead of OpenSSL.
Release Prince 10 rev 5 patch 1.
Fix bug where HTML documents containing carriage returns can lose characters.
Fix bug where tables with zero font-size can cause Prince to hang indefinitely.
Release Prince 10 rev 6.
Fix bug where CSS matrix() transforms are incorrect.
Release Prince 10 rev 7.
Fix issues affecting multiple comma-separated values for the background properties.
Apply prince-text-replace before applying prince-linebreak-magic.
Avoid line-breaks before hyphens at the beginning of words, eg. "-word".
Support the CSS filter property on bitmap images.
Support tooltips / popups in generated PDF files, via a new prince-tooltip
CSS property that can take text from the HTML title attribute.
Remove support for "prince input.html output.pdf" and make the -o/--output
Support JPEG image resolution specified in Exif metadata.
Strip ICC profiles and Exif metadata from embedded JPEG images.
Add new values to prince-image-magic property: jpeg-verbatim,
convert-to-jpeg, and recompress-jpeg (replacing jpeg-quality).
Make clip paths in SVG (and CSS) clip away content that is entirely invisible,
instead of leaving it in the PDF file.
Support the CSS filter property on SVG images.
Fix margin calculation so that fixed-width blocks end up right aligned in a
bidi RTL context.
Fix bug where backgrounds applied to table cells can repeat on the second page
even if they are specified as no-repeat.
Support CSS Media Queries Level 4.
Optimise conversion of documents with many repeated style rules.
Use the PostScript name for TrueType fonts if it is present, and add an
experimental --force-identity-encoding option.
Don't round page sizes to the nearest point (1/72").
Prince is being run from a wrapper library.
Change XML processing so that XHTML, SVG, and MathML elements must be in their
respective namespaces in order to be recognised.
Support the SVG dominant-baseline property.
Support the SVG baseline-shift property.
Support the CSS @charset rule for Latin1 and Windows-1252 encodings.
Support CSS style sheets encoded in UTF-16.
Support hyphenation of words containing punctuation, like
"quell'impossibilità" in Italian.
Fix issue where nested SVG images with non-zero viewBox are incorrectly
Support preserveAspectRatio="defer" for nested SVG images.
Add an auto value to prince-pdf-page-layout and ensure that single-page is
explicitly added to the file, as Acrobat Reader does not respect the default
value given in the PDF specification.
Support the DOM window.top, window.parent, and document.defaultView properties.
Support the CSS filter property on arbitrary elements by rasterising them.
Fix various conformance issues affecting CSS stacking contexts for tables and
Support rasterising directly to a PNG or JPEG image.
Add a new property prince-pdf-color-options to control the conversion between RGB
and grayscale color spaces.
Add a new property prince-pdf-page-colorspace for specifying the color space
used to composite pages with transparency.
Support global defs in SVG, eg. references to elements outside of the current
SVG fragment, either in the same document or other documents.
Change handling of fonts with positive descent metrics to match the behaviour on
Optimise getElementsByTagName and getElementsByClassName by caching live node
Support the hyphenate-character
property. (Prefixed as prince-hyphenate-character for now).
Fix bug affecting setting individual values for the CSS clip property in
Support new footnote-display property for a more convenient way of specifying
whether footnotes should be block or inline.
Give more appropriate warnings for unsupported and unknown CSS properties.
Allow hyphenating words within hyphenated phrases.
Support SVG filters. (incomplete)
Add new option --no-warn-css-properties to suppress warnings for
unknown CSS properties.
elements like br and img.
Fix scaling bug affecting SVG filters.
Support SVG filters on text elements (not tspan elements).
Split --no-warn-css-properties into three properties: --no-warn-css,
--no-warn-css-unknown, and --no-warn-css-unsupported, and only warn about the
syntax of property values for known properties.
Fix bug where XMLHttpRequest object isn't an event target, causing spurious
Fix bug where Thai word-breaking could occasionally crash.
Change border-radius so that it doesn't apply to boxes split across pages.
Support the new syntax for the border-radius shorthand property.
Fix bug affecting @page:blank selector combined with page-break-before and
multiple input documents.
Support creating PDF files larger than 4GB for 64-bit Prince builds.
Disable XInclude by default (it can be enabled with the --xinclude option).
Disable XML external entity loading (XXE) by default (it can be enabled with
the --xml-external-entities or --xxe options).
Changed default value for widows/orphans property to 1 instead of 2.
Avoid rasterising SVG where possible when applying filters.
Fire DOMContentLoaded event on the window object as well as the document.
Try harder to work around issue where SVG clipPath element can only contain one path.
Fix bug affecting viewports on nested SVG elements.
Support new URL scheme for PDF actions, eg. pdf-action:GoBack.
Support CSS @supports rule and @import condition.
Support new CSS attr() function syntax, percentage attribute values on
properties which support them, and check attr() types earlier.
Support the PDF/X-3:2002 profile.
Support the PDF/A-3b profile.
Convert CMYK colors and images to sRGB when rasterising or filtering.
Tag rasterised images with an sRGB color profile.
Fix problems with PDF/A-1b, PDF/X-3, and PDF/X-4 profiles.
Require output intent and document title for PDF/X profiles.
Convert 16-bit images to 8-bit automatically when the specified PDF profile
does not support them.
Color correct PNG images according to their gamma or chromacity chunks.
Add --device-cmyk-profile option.
Fix bug where table cells with large specified height can lead to unnecessary
Add new CSS properties prince-device-cmyk-profile and prince-filter-resolution
for the @prince-pdf rule.
Fix bug where box-sizing: padding-box was not correct.
Fix issue (again) affecting relative positioning on table cells.
Add new option --convert-colors to convert all the colors and images to the
specified PDF output intent ICC profile.
Support PDF/X-1a:2003 profile.
Rename the --device-cmyk-profile option to --fallback-cmyk-profile.
Fix bug where long floating blocks can be "interleaved" across page breaks.
Fix absolute positioning for over-constrained situations in a right-to-left
Fix float margin resolution in right-to-left contexts.
incorrectly as an array of arrays not array of undefined values.
Add options to control SSL / TLS settings for HTTPS connections.
Support relative base URLs in the HTML base element.
Support indented JSON output (via third argument of JSON.stringify DOM
Fix bug affecting page breaking on content that spans multiple columns.
Default to CMYK output intent if none is specified when generating PDF/X
Check type attribute of script elements to ensure JSON is not executed.
a reference error.
Support DOMImplementation.createHTMLDocument method.
Support HTMLDocument interface.
Support document.title property.
Support opacity for CMYK colors with optional alpha component for cmyk()
Fix bug affecting horizontal margins for spans and inline-block elements in
Fix bug affecting horizontal margins for spans and inline-block elements in
Support the zero-width non-joiner (zwnj) character.
Fix bug where prince-shrink-to-fit can cause severe slowdown.
Reencode progressive/interlaced JPEGs that can fail to display correctly in Acrobat.
Fix bug where changing filter resolution could lead to a shift in position.
Support new property prince-mark-width to control crop/cross mark thickness.
Updated hyphenation pattern dictionaries.
Fix escaping of text returned from innerHTML DOM property for unescaped
elements like script and style.
Support HTML input[type="number"] and date consistently with other form inputs.
Support the PDF/X-1a:2001 profile.
Release Prince 11.
Fix bugs affecting absolute and relative positioning in right-to-left layouts.
Improve vertical positioning of absolutely positioned boxes.
Fix bug affecting relative positioning with percentage offsets.
Fix table layout for percentage widths with horizontal margins.
Change default value of SVG stroke-miterlimit to 4 not 10, and clamp small
values to at least 1.
Fix issue where very long PDF bookmark captions can cause crashes on Windows.
Fix issue where attr() functions are serialised incorrectly when element style
Update Media Queries support to comply with latest CSS specification.
Support stroke/fill properly for text-decoration in SVG.
Fix bugs affecting OpenType font shaping for complex fonts such as Amiri.
Update character data tables to Unicode 9.
Fix handling of Windows UNC paths in URLs.
Fix bug affecting grayscale PNG images containing a (useless) cHRM chunk.
Update CA root certificates.
Avoid hyphenating before -ng at the end of an English word.
Improve line-breaking for paragraphs containing floats.
Release Prince 11.1.
Fix bug where non-opaque strokes still knock out the fill on shapes that are
filled and stroked.
Fix bug affecting gradients with opacity that are entirely clipped away.
Support the CSSStyleDeclaration methods setProperty, setPropertyValue,
Fix drop-shadow() filter subsurface out-of-bounds exception.
Add "pseudo" property to pseudo-element boxes in the box tracking API.
Speed up CSS selector matching (eg. for Bootstrap).
Fully support the opacity property in CSS.
Fix minor issues affecting SVG clip paths and transforms.
Support SVG masks.
Fix issue where some OpenType CFF fonts do not work correctly if they are
CID-keyed fonts (often used for CJK scripts).
Support the OpenType "fina" feature for non-Arabic scripts (used by the Google
Fix bug affecting SVG circle arc direction and dashed strokes.
Support SVG clipPaths that contain multiple paths by using masks or by
drawing and clipping shapes multiple times if masks are not available.
array methods to work on strings).
Fix bug where box-sizing is not taken into account when calculating the size
of shrink-to-fit containers like inline-block and float boxes.
Fix support for zwnj characters in Bengali and other Indic scripts.
Make minor accuracy improvements to rasterisation and filtering.
Add --raster-background option to specify whether pages should be rasterised
against a white or transparent background.
Fix issues affecting SVG gradients using object bounding box units.
Add new @prince-overlay @page region that covers the entire page body area for
watermarks and other overlays.
timeouts, up to a notional 10 seconds delay.
Fix issues affecting SVG patterns using object bounding box units or
Fix bug with percentage lengths in SVG pattern content.
Make SVG paint server references fall back in a standard way.
Fix a problem with clip paths around SVG markers.
Fix possibility of infinite regress with SVG markers.
Use correct bounding box for an SVG clip path applied to a clipPath child
Fix SVG radialGradient with percentage length for radius.
Fix bug where justified text next to a float that fills an entire page can be
Support new prince-pdf-duplex / PDF.duplex property to specify the PDF viewer
Add an optional third argument to PDF.attachFile to specify the filename that
should be displayed for the attachment in the PDF.
Fix bug involving duplicated footnote with word breaking.
Release Prince 11.2.
Release Prince 11.3.
Fix bug where Prince will not accept gzip transfer encoding when making HTTP
requests on Windows.
Release Prince 11.3.1.
Fix bug where Prince will crash on Windows 10 after applying Microsoft updates
from April 2018.
Release Prince 11.3.2.
Fix "ref_already_used" internal error related to images in SVG patterns.
Release Prince 11.4.
Expose individual columns in the box tracking API.
and would not trigger automatic semicolon insertion.
Fix bug where percentage widths on table cells that span multiple columns can
be resolved incorrectly.
Support the DOM Document.compatMode property, needed by KaTeX.
Fix issue where the orphans property can cause footnotes to be unnecessarily
moved to the next page.
Fix issue where nested inline footnotes do not work properly.
Expose footnotes and page floats area in the box tracking API.
Expose image URLs in the box tracking API.
Fix some issues affecting CSS clearfix techniques that don't cross page
for specifying the document language.
Fix bug affecting mark positioning in Thai text.
Change "column-count: 1" to behave differently from "column-count: auto", for
consistency with browsers.
Fix issue where Prince attempts to load img elements with empty src
Fix conformance issues for PDF/A and log numbers that go out of range.
Fix bug where the getElementsByTagName DOM method does not lowercase its
Support non-Latin font family names properly.
Fix issues affecting CSS clearfix techniques that cross page breaks.
Support "column-gap: normal".
Fix some bugs with table minmax width calculation.
Fix some bugs with resolution of percentage margins and paddings.
Support SSL client certificates with new command-line options.
Don't collapse margins across block formatting context boundaries.
Fix bug where PDF encryption disallow properties are inverted when set via the
Change default PDF encryption key size from 40 bits to 128 bits.
Fix bug that could affect the rasterisation of patterns inside filters.
Fix margin collapsing bugs involving percentage height and min-height values.
Fix margin collapsing bugs involving empty blocks that establish new block
Fix bug that could affect the positioning of nested marks in complex OpenType fonts.
Support the :checked, :disabled, :enabled, :read-only, and :read-write selectors.
Support the box-sizing property on flexbox elements.
Support the PDF/UA-1 profile.
Improve conformance for XMP metadata parsing.
Support combined PDF/A-1a+PDF/UA-1 and PDF/A-3a+PDF/UA-1 files.
Support the tab-size property, although without full tab alignment.
Make prince-hyphenate-lines stricter and accept prince-hyphenate-limit-lines
as an alias to bring it closer to CSS4.
Support percentage values for the word-spacing property.
Fix bug where the DOM querySelector methods should be case-insensitive in HTML
Fix bug where the DOM attribute methods and others should be case-insensitive in HTML
Fix bug where margins are repeated even when box-decoration-break is set to
Support PDF object streams to reduce the size of tagged PDFs. (Can be disabled
PDF.objectStreams boolean property).
Limit squeezing in justified text so that spans with white-space: nowrap do
not get squashed into overlapping themselves.
Support multiple chained actions for the prince-pdf-open-action property.
Use PDF compressed object streams to reduce the size of documents
containing many link annotation objects and raise default PDF version to 1.5.
Allow the DOM innerHTML property to be set to strings containing NUL
Improve accuracy of text positioning due to PDF font units differing slightly
from TrueType font units (1/1000 vs. 1/2048).
Support the break-before, break-after, and break-inside properties as
shorthands for the page/column-break-before/after/inside properties.
Disable the OpenType "fina" feature by default.
Correctly take block height and min-height into account for blocks that cross
Fix bug causing crash on Ubuntu 18.04 virtual machine.
Release Prince 12.
Apply hyphenation to text in white-space: pre-line and pre-wrap blocks.
Set the default language field in the PDF when the lang/xml:lang attributes
are present even for non-tagged PDF files.
Fix masking of SVG image referenced by SVG image element.
Fix bug affecting SVG feGaussianBlur and feDropShadow filters.
Fix bug with zero font size text.
Avoid unnecessary rasterisation when applying drop shadow filters.
spaces or other Unicode space characters.
Allow the prince-filter-resolution property to apply to individual elements,
not just the @prince-pdf rule.
Clarify warning message about "filter resolution reduced by factor" that
applies to overlarge images.
Set the PDF direction based on the direction and writing-mode of the document
root element to support right-to-left books.
Support the orientation field in JPEG and TIFF images with the new CSS property
"image-orientation: none | from-image".
Fix bug in the box tracking API where boxes in columns and flex containers
could have the wrong parent.
Give transformed links and non-rectangular SVG links more accurate clickable areas (eg. for 45deg rotations).
Support HSL colors with the hsl() and hsla() functions.
Fix issue affecting whitespace collapsing around newlines in Thai text.
Fix bug in which tables with max-width set can end up unnecessarily wide.
Fix issue introduced in Prince 12 where PNG, GIF, and TIFF files load slower on MacOS.
Fix bug where HTML character entities are handled incorrectly if they are the
very last thing in the file or innerHTML string.
Release Prince 12.1.
Fix abort caused by Noto Glagolitic font having null offsets in the GSUB
Fix bug affecting zero-sized soft mask images in SVG.
Release Prince 12.2.
Fix bug affecting fonts on MacOS 10.14 (Mojave).
Release Prince 12.2.1.
Support prince-pdf-page-layout: two-page as an alias for two-page-left.
Fix issue where the overflow property incorrectly applies to table rows.
Fix bug where opacity on an element can affect following filters.
Improve performance of tagged PDF for large documents.
Release Prince 12.3.
Restrict redirects to HTTP and HTTPS URLs.
Add a new command-line option
--no-redirects which disables
Release Prince 12.4.
Explicitly tag headers and footers as pagination artifacts for all tagged
PDFs, not just those in the PDF/UA-1 profile.
Fix issues relating to images of unusual size.
Fix issue where PDF/A validators may not recognise rdf:resource attributes.
Fix bug where pdf-xmp option did not work correctly when used through the
Fix "no area" bug.
percent-decoded and not prefixed with "#".
Improve performance for very large CSS style sheets.
Fix bug in which a forced page break in a very tall fixed height block can
cause Prince to hang.
Release Prince 12.5.
Support SVG sizing, scaling, and aspect ratios in a manner more compliant with
the specifications and interoperable with web browsers.
Add an optional same-window / new-window value to the prince-pdf-link-type
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 SVGs without intrinsic width/height or aspect ratio.
Improve placement and sizing of SVG images embedded via img, object,
background-image, canvas drawImage(), feImage, etc.
Support the object-fit and object-position properties.
Support 2-value syntax for background-repeat.
Support 3-value and 4-value syntax for background-position.
Fix some bugs with background-repeat: round|space.
Fix issues affecting filters applied to SVG root elements in inline and
Support spot colors in SVG and CSS gradients.
Avoid breaking around a non-breaking space character even next to CJK text.
Extend the prince-pdf-script property to take URL values for external script
events to PDF files (eg. on will-save, will-close, etc.)
Compute relative font-weight according to CSS2.
Draw text decoration due to ancestors of SVG text elements.
Support SVG filter inheritance using xlink:href.
Fix feTile when filter sub-region has non-zero offset.
Support nested baseline-shift in SVG.
Support equal gradient stops at offset 0.0 and 1.0.
Fix marker 'auto' orientations in some edge cases.
Fix some other SVG conformance issues raised by resvg test suite.
Fix bug where page floats with "unless-fit" that occur at the end of a block
may incorrectly overlap in-flow content.
Fix issues affecting SVG dominant-baseline auto and use the correct font
size for SVG baseline-shift super/sub.
Support new "background-attachment: fixed bleed" mechanism for extending the
@page background into the bleed area.
Support SVG gradient spreadMethod "repeat" and "reflect" using PostScript
function based shading.
Support fragmentation for multi-page single-column/row flex containers.
Fix "make_flex_cross_items: none" internal error affecting flex box layout.
Update definition of default serif font-family for CJK languages.
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.
Fix bug affecting "list-style: none inside".
Fix bug affecting SVG gradients with transparency inside a CSS transform.
Fix bug where the word-break property breaks Arabic text.
Support CSS variables (aka custom properties).
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.
Fix bug where large floats that span multiple columns can trigger unpackable
Workaround Acrobat issue where text in some fonts could include a trailing
Add the Takao fonts used for Japanese on Ubuntu to the definitions in
fonts.css for the default serif and sans-serif fonts.
Change the behaviour of "line-height: normal" to use font metrics in
order to more closely match browsers.
Expand values for prince-pdf-tag-type and move defaults to the HTML style
Add CSS properties to specify alternate text and acronym expansion text for
Add @prince-pdf property prince-pdf-display-doc-title: true|false, needed for
Support the HTML main element by applying display: block to it in html.css.
Add new options --fail-dropped-content, --fail-missing-resources, and
Fix bug where column floats are not placed at the very bottom of the column
area in the presence of spanning floats.
Use case-insensitive attribute value tests to support HTML 4 in the
default style sheets.
Accept -prince- as a vendor prefix for Prince-specific CSS properties and
@-prince for at-rules like @-prince-pdf and @-prince-color.
Change "prince-pdf-page-colorspace: auto" to use the output intent color space
or the destination color space when color conversion is enabled.
Fix issue where fixed heights were not respected for elements with unbalanced
Improve behaviour of prince-snap for column floats.
Fix issue where a font may not be found for italic Arabic.
Allow specifying a PDF output intent without a PDF profile and in the absence
of color conversion.
Allow the convert-colors option to be disabled for individual elements by means
of the prince-pdf-color-conversion property.
Change shrink-to-fit on @page rules so that it resets after each forced page
break, allowing it to apply to individual named pages.
Workaround another bug in MacOS Preview affecting OpenType CFF fonts using more
than 255 glyphs.
Fix bug affecting fonts with no English font family name.
Fix issue where Prince demo stamp does not pass Adobe accessibility check.
Don't treat blocks with a specified fixed height as page-break-inside: avoid
Change leaders so that they expand to fill the available space when used in
shrink to fit contexts like floats and inline blocks.
Support an optional second argument to the leader() generated content to
specify a minimum width.
Allow 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.
Support CSS and TrueType font-weight values that aren't multiples of 100.
Release Prince 13.
Fix issue affecting Thai line-breaking support.
Change @page rules to inherit from the document root element.
Support CSS variables in @page rules and margin boxes.
Extend prince-pdf-tag-type to support the "Artifact" and "Table" values.
Fix issue that can affect loading XML documents from Windows UNC paths.
Release Prince 13.1.
Fix issue where PNG images can fail to load if they contain large
Support rendering intents for color conversion.
Support custom list markers for PDF/UA.
Support "column-span: none" by treating it as "column-span: 1".
Fix issue affecting the init feature in some fonts for Indic text following
Fixed bug affecting new versions of the Baekmuk Batang font.
Accept non-empty glyphs with zero contours, which are very rare but
Fix bug affecting XInclude and external entities in XML documents loaded from
Fix bugs affecting DOM attribute methods and namespaces, for example
Release Prince 13.2.
Support OpenType reverse chaining contextual single substitutions, as used by
the "Numderline" font.
Fix issue where CMYK colors are unnecessarily assigned a default ICC profile
instead of being left as device-dependent.
Workaround issue affecting buggy fonts where the loca table offsets point past
the end of the glyf table.
Release Prince 13.3.
Fix issues affecting the sizing of inline blocks.
Fix issue where floats can sometimes fail to fit in the available space.
Support auto, clip, and scroll values for the overflow property (note: it does
not actually scroll, but does establish a new block formatting context).
Fix performance regression affecting system fonts on Windows.
Fix issue affecting some URLs with percent-encoded characters.
Release Prince 13.4.
Fix font subsetting issue affecting some TrueType fonts.
Improve performance for long documents using OpenType fonts.
Update curl version to fix issue with AltNames on Windows 7.
Release Prince 13.5.