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 26 June 2015
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 prince-rotate-body so it doesn't affect page backgrounds. (ref)
Fix issue affecting Windows GUI where multiple files will be parsed as XML instead of HTML. (ref)
Release Prince 10 rev 3.
Apply prince-text-replace before applying prince-linebreak-magic.
Avoid line-breaks before hyphens at the beginning of words, eg. "-word".
Change the rendering order of rowspan table cells to fix text search across line break issue in Acrobat.
Support 256-bit PDF encryption.
Support tooltips / popups in generated PDF files, eg. taken from the HTML title attribute. (ref)
Fix bug affecting table captions. (ref)
Fix bug affecting inline footnotes. (ref)
Disambiguate document filenames to ensure links work. (ref)
Support CSS rem units.
Support CSS calc expressions.
Support Sinhalese script and fonts. (ref)
Support filters in CSS and SVG. (ref)
Support opacity for CMYK colors (eg. with a cmyka() function). (ref)
Support @font-face rules in external SVG image files. (ref)
Support scoped @font-face rules in iframes. (ref)
Support PDF/A-2 and PDF/A-3. (ref)
Fix bug where fixed-width blocks are not right aligned in a bidi RTL context.
Strip ICC profiles and Exif data from embedded JPEG images.
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)
Change @page rules to inherit from the document root element. (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)
Investigate issue where progressive JPEGs do not display correctly in Acrobat. (ref)
Fix bug where CSS transforms on tables do not affect the table caption. (ref)
Fix bug where "page-break-after: always" applied to page floats can also cause a page break before the page float.
Support multiple chained actions in the prince-pdf-open-action property. (ref)
Investigate issues where overflowing content interacts with page breaking. (ref)
Extend Prince shell to support multiple re-entrant Prince instances. (ref)
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 the SVG baseline-shift 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)
Add a property to control the initial PDF zoom level. (ref)
Fix bug where background images don't apply to table rows. (ref)
Support img alt attribute for tagged PDF.
Support h1-6 heading elements for tagged PDF.
Support RequireJS. (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)
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)
Design a mechanism for creating landscape pages that doesn't interrupt text flow. (ref)
Provide a mechanism to set the default zoom level for PDF documents. (ref)
Support new "isolate" values on CSS unicode-bidi property, needed for HTML5 bdi element. (ref)
Support the CSS3 border-image property. (ref)
Make clip paths in SVG (and CSS) clip away content that is entirely invisible, instead of leaving it in the PDF file. (ref)
Support TIFF CCITT Group 4 fax encoding format for compressed images. (ref)
Support PDF compressed object streams to reduce the size of documents containing many link annotation objects. (ref)
Fix bug affecting fallback of the degree celsius character. (ref)
Support reading multiple input documents from standard input. (ref)
Support the CSS tab-size property. (ref)
Fix bug where bookmarks are out of order due to "float: top". (ref)
Allow missing glyphs to fallback to U+FFFD instead of question mark. (ref)
Investigate issue involving max-height on blocks containing images. (ref)
Fix bug where line numbers for error messages in <script> tags are relative to the start of the element, not the start of the file.
Support global defs in SVG. (ref)
Fix bug affecting MathML msubsup with empty first element. (ref)
Support line-breaking in inline MathML equations. (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)
The root element background should bleed to the trim box if there are no margins, padding, or borders on the page.
Support loading hyphenation dictionaries from HTTP URLs. (ref)
Additional ideas for improvements to footnotes. (ref)
Make empty footnote calls not create a line box. (ref)
Investigate issue with :blank pages and page-break-after property. (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)
Add support for the CSS3 box-shadow property. (ref)
Fix bug where letter-spacing is not applied elegantly. (ref)
Support SVG fonts.
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)
Allow arbitrary counters to be incremented on @page rules. (ref)
Fix bug where named strings are not updated in table headers and footers. (ref)
Support digital signatures on PDF files. (ref)
Support the "column-break-inside" property. (ref)
Add a case-insensitive attribute selector to support HTML 4 in the default style sheets. (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)
Allow the user to disable HTTP proxying on a host by host basis. (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.
Support rendering directly to a PNG or JPEG image. (ref)
Support a list of exceptions in hyphenation pattern resources. (ref)
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 the opacity property. (ref)
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)
Change margin collapsing for empty blocks to match the CSS 2.1 specification.
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 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.