Release Notes for Prince 10

April 2015

SVG Support

Support for the textPath element.

The aspect ratio for SVG images with no width/height is determined from the viewBox.

Image files with an unknown extension will be loaded as SVG.

Removed unnecessary "max-width: 100%" from the default SVG style sheet.

Fixed bug affecting the angle of markers on curved paths.

Fixed bug where SVG text could have wrong stroke width.

Fixed bug affecting dx/dy attributes on tspan elements containing right-to-left scripts (eg. Arabic).

Fixed bug where artificially slanted text was invisible in SVG.

Fixed bug where the text-anchor property was not respecting bidi direction.

Fixed bug where clip paths could fail if clipPathUnits specified objectBoundingBox.

Fixed bug where small scale matrices could cause rendering problems.

Fixed bug where paths could be stroked even with stroke-width set to zero.

Fixed bug where xml:space was ignored if applied directly to <svg> elements.

HTTP Support

Support for multiple concurrent HTTP requests to reduce latency.

URL parsing complies with the new WHAT-WG URL specification.

Added new options for HTTP authentication, including the ability to provide different authentication credentials to different servers.

Support for NTLM and Kerberos authentication schemes on Windows.

Added a --cookie command-line option for specifying cookies without needing to create a cookie jar file.

Changed default value for --http-timeout option to 60 seconds.

Added --user-agent option to override the user agent string.

Fixed bug where XInclude elements did not respect the --baseurl option.

Fixed bug where XInclude did not support HTTP resources parsed as text.

JavaScript Support

New box tracking API to inspect the formatted PDF.

Support for querySelector and querySelectorAll methods.

Support for the Element.getComputedStyle method. (Some limitations on width/height still apply).

Support for the window.setTimeout and window.clearTimeout methods.

Support for the String.trim method.

Support for the Node.contains method.

Support for the Node.compareDocumentPosition method.

Support for the Object.keys method.

Support for more HTML DOM element interfaces.

Conformance and interoperability improvements for regular expressions.

Added an option to disable JavaScript from the Prince Windows GUI.

Fixed bug affecting the innerHTML property when parsing HTML fragments containing table elements.

Changed JavaScript reserved keyword set to match web browsers.

Fixed bug where JavaScript keywords were not accepted as identifiers in some situations that should be legal.

CSS Support

Added a new prince-rotate-body property for more control over landscape pages.

Changed prince-shrink-to-fit so that it only affects page body content, not page headers and footers.

Support for overflow-wrap / word-wrap: break-word.

Support for the word-break property.

Support for percentage values on border-radius properties, and correct clipping for images with rounded borders.

Changed the border shorthand property so that it does not affect border radius.

Fixed bug where large border-radius settings could cause overlapping curves.

Support for the rebeccapurple color.

Reduced the default page margin to 0.75in (54pt) and added --page-size and --page-margin command-line options.

Support for translate3d() function in CSS transforms if Z coordinate is zero.

Added new prince-lang property.

Fixed bug where long column floats could cause Prince to hang.

Fixed bug where CJK text could break inside white-space: pre and nowrap elements.

Changed prince-overprint() color function to support CMYK and RGB colors.

Added overprint mode argument to prince-overprint(), defaulting to overprint-mode-nonzero.

Changed behaviour of height/min-height/max-height properties so that blocks are not pushed to the next page unnecessarily.

Support for first-except page-policy value (eg. for string-set).

Prevented hyphenation after a fixed hyphen, to reduce awkward word breaks.

Fixed bug where ::first-line could fail to apply correctly to ::before and ::after pseudo-elements.

Fixed bug where very large numbers could cause problems (eg. z-index: 999999999999).

Font Support

Support for font-variant in @font-face rules to handle separate small-caps fonts.

Added prince-no-fallback font family to inhibit font fallback, triggering warnings if glyphs are not found.

Changed the way local() works in @font-face src property so that it only refers to system fonts and not other @font-face rules. (Added new prince-lookup() value for old behaviour).

Fixed bug affecting OpenType mark placement for Ezra SIL Hebrew font.

Fixed bug affecting OpenType substitutions for below-base consonants in Indic scripts such as Bengali.

Fixed bug affecting OpenType shaping of marks following ligatures in the Arabic Typesetting font.

HTML Support

Support for the HTML5 template element.

Support for UTF-16 encoding for HTML documents.

Added default vertical margin to HTML list elements, for consistency with browsers.

Fixed bug where HTML documents containing large comments were slow to load.

Miscellaneous Improvements

Support for PDF metadata required by PDF/X-3:2003 and PDF/X-4.

Support for embedding ICC color profiles found in JPEG, TIFF, and PNG images.

Support for 1-bit black and white TIFF images.

Updated Prince server wrappers to support error logging for streaming convert methods.

Fixed bug causing file descriptor leak when loading many XML documents.

Fixed bug affecting transparency groups on PDF pages that use opacity.

Prince 10 rev 2

June 2015

Reduced memory usage for large documents with many style rules.

Fixed bug where XInclude URLs could fail to work with absolute file paths on Windows.

Prince 10 rev 3

July 2015

Added new --remap option to map HTTP URLs to local file paths.

Fixed broken --fileroot option.

Added new two-page-left and two-page-right values for prince-pdf-page-layout property.

Changed @page rules so that prince-rotate-body and shrink-to-fit do not apply to page backgrounds or borders.

Changed transform-origin property to accept Z coordinate as long as it is zero.

Support for grayscale TIFF images with alpha channels.

Fixed bug affecting SVG shapes that are neither stroked nor filled.

Fixed parser bug affecting CSS :nth-child() selector containing spaces.

Fixed issue affecting Windows GUI where multiple files could be parsed as XML instead of HTML.

Prince 10 rev 4

August 2015

Fixed issue where very large SVG documents could cause Prince to crash.

Fixed bugs affecting SVG dx attribute in conjunction with bidirectional text and the text-anchor property.

Fixed bug in SVG where path coordinates don't need to be separated by spaces if they begin with a decimal point.

Added fallback rules for DejaVu LGC and Liberation fonts to default fonts.css file for compatibility with Red Hat and CentOS.

Fixed issue caused by Japanese fonts on latest public beta of MacOS X.

Removed unnecessary dependency on libgcrypt11 from Ubuntu DEB packages.

Fixed bug affecting text using artificial italics surrounded by text that is not using artificial italics.

Prince 10 rev 5

October 2015

Fixed bug where overprint could not be specified independently for fill and stroke colors.

Fixed bug where SVG markers could be clipped incorrectly.

Fixed bug affecting SSL downloads on some Linux platforms.

Fixed bug that prevented Prince from running on some Windows platforms.

Fixed bug where CSS borders ignored opacity from RGBA colors.

Fixed bug affecting SVG paths.

Prince 10 rev 5 patch 1

October 2015

Fixed possible crash caused by very large tables.

Fixed parallel downloads on recent MacOS X versions, where curl uses SecureTransport instead of OpenSSL.

Prince 10 rev 6

December 2015

Fixed bug where HTML documents containing carriage returns could lose characters.

Fixed bug where tables with zero font-size could cause Prince to hang indefinitely.

Prince 10 rev 7

February 2016

Fixed bug where CSS matrix() transforms were not correct.

Fixed bug where the JavaScript String.trim() method could crash.

See the release history for earlier versions of Prince.