Prince Release Notes
Prince 6.0 rev 6 — May 2008
-
Changed 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 appears.
-
Added support for links to local PDF files that include PDF open parameters, such as the target page number.
-
Added support for new prince-page-group property to control when a named page group starts or restarts.
-
Added support for new prince-trim property to specify the size of the paper trim box when crop marks are enabled.
Hyphenation
-
Improved performance when hyphenation is enabled.
-
Improved treatment of manually hyphenated words.
-
Fixed bug in which "hyphens: manual" was not enabling processing of soft-hyphen characters.
-
Fixed bugs affecting the width of floats and table cells containing hyphenated words.
-
Added new property value "hyphens: prince-expand-all" for debugging hyphenation patterns.
Lists
-
Added support for the "type" attribute on HTML lists.
-
Added support for alternating list marker styles on nested HTML lists.
Tables
-
Added support for rowspan=0 from HTML 4.
-
Fixed layout bug affecting some tables with cells that span multiple columns.
-
Fixed layout bug affecting some tables with cells that span rows and break across multiple pages.
-
Fixed bug in which page-break-after: avoid could cause unwanted page breaks when applied to the last row in a table.
-
Fixed bug in default style sheets affecting HTML valign attribute on table cells.
HTTP support
-
Added support for external "cookie jar" files for specifying authentication cookies.
-
Fixed bug in which a HTTP proxy server could be used localhost URLs.
Platform support
-
Added Prince package for Solaris 10 (Sparc).
-
Added Prince package for FreeBSD 6.3.
-
Added support for TrueType Collections on Linux, FreeBSD and Solaris.
-
Fixed "bad argument" warning affecting some fonts on MacOS X Leopard.
-
Fixed bug in which RPM upgrade could overwrite existing license file.
-
Fixed bug in which blocked SIGPIPE signal could lead to zombie processes when running under PHP.
Other bug fixes and improvements
-
Fixed bug affecting floats with negative margins that are wider than the page.
-
Fixed bugs affecting columns, column floats, page floats and footnotes.
-
Fixed bug leaving unnecessary page break after page floats within named pages.
-
Fixed bug affecting the style attribute in SVG.
-
Fixed bug affecting style sheets that begin with a UTF-8 byte order mark.
-
Fixed bug affecting borders and margins applied to images.
-
Fixed bug affecting width calculation for inline blocks.
-
Fixed bug where multiple redundant error messages were produced if an image could not be loaded.
-
Fixed bug in which "." was loaded if an HTML img element has no src attribute.
-
Fixed bug in which sibling selectors were not always correctly applied.
-
Added support for prince-flow() as well as flow() on the content property.
-
Fixed bug affecting mailto: URLs.
-
Improved treatment of landscape pages.
Prince 6.0 rev 5 — January 2008
HTML support
-
Added support for presentational attributes on the <hr> element.
-
Added support for the <s> and <strike> elements.
-
Added support for the nowrap attribute on table cells.
-
Added support for the "Generator" meta tag.
-
Fixed bug in which Flash content was being downloaded for object elements.
-
Fixed bug in which img elements with no src attribute were not displaying their alt attribute text.
HTTP support
-
Added new --http-proxy command-line argument for specifying a proxy server.
-
Added support for remembering cookies for subsequent HTTP requests.
-
Updated Prince PHP interface to support basic HTTP authentication.
-
Fixed bug in which failed HTTP requests could be retried repeatedly.
-
Fixed bug in which no-cache headers were added to each HTTP request, which could degrade performance.
Page breaking and layout
- Added a new caption-page property for controlling whether table captions should be repeated when a table is broken over multiple pages.
-
Improved margin collapsing behaviour for blocks that clear floats.
-
Improved column balancing and the treatment of page floats and footnotes on pages with columns.
-
Improved page breaking of blocks with page-break-before/after: avoid.
-
Added support for the page-break-inside property on table rows as well as cells.
-
Fixed bug in which page-break-after: always was not correctly applying to table rows.
-
Fixed bug in which some blank pages were not matched by the :blank page class.
-
Fixed bug in which properties applied to page margin boxes were not taking the specificity of the page selector into account when cascading.
-
Fixed bug in which page-break-after: avoid could actually cause unwanted page breaks when applied to the last element in a block.
-
Fixed bug affecting page breaking when a float was immediately followed by a page break.
-
Fixed bug in which the center margin box did not always take the full width of the page header if an empty element was flowed to it and no left or right margin box had been specified.
PDF properties
-
Added a new @prince-pdf CSS rule that can be used to apply the following PDF properties:
@prince-pdf { prince-pdf-script: "...JavaScript..."; prince-pdf-page-mode: auto | show-bookmarks | fullscreen; prince-pdf-print-scaling: auto | none }
Platform support
-
Added Prince packages for SUSE 10 and Solaris 10 (Intel).
Other bug fixes and improvements
-
Added support for the image/pjpeg MIME type.
-
Fixed bug in which the table border-spacing property was not inherited.
-
Fixed bug affecting string-set with "first" page-policy when multiple documents are in use.
-
Fixed bug affecting interaction between named pages and left/right page breaks.
-
Fixed internal error caused by replaced elements with zero width.
-
Fixed shrink-wrap issue affecting floats containing tables with specified width.
-
Fixed bug affecting the currentColor keyword in SVG.
-
Fixed bug affecting footnotes and page floats in content flowed into page margin boxes.
-
Fixed bug affecting internal links on Windows.
-
Fixed bug affecting automatic layout for tables with a specified width.
Prince 6.0 rev 4 — October 2007
-
Added support for TrueType font subsetting to reduce PDF file size.
-
Added support for line-breaking between Chinese, Japanese and Korean characters.
-
Improved performance of text hyphenation in multi-column layouts.
-
Added support for multiple pseduo-elements in CSS selectors so that generated footnotes and list item markers can be styled. (For example,
::after::marker). -
Fixed bugs affecting page background image properties.
-
Fixed bug affecting links without fragment identifiers when processing multiple input documents.
-
Fixed bug affecting page headers and footers flowed to the start of the document when processing multiple input documents.
-
Fixed bug affecting page breaking tables with cells that span many rows or table-row-groups with page-break-inside set to avoid.
-
Fixed bug affecting tables with baseline aligned cells that could overlap the page boundaries in some situations.
-
Fixed bug in which complex tables could cause an internal error.
Prince 6.0 rev 3 — August 2007
HTML support
-
Added support for HTML anchors that use the name attribute instead of the id attribute.
-
Added support for the HTML iframe element.
-
Added support for the clear attribute on the HTML br element.
-
Added support for the alt attribute on the HTML img element.
SVG support
-
Added support for SVG background images.
-
Added support for the old SVG MIME type, "image/svg-xml".
Printing improvements
-
Added support for printing in the bleed area of the page when crop marks are enabled.
-
Added support for a new prince-bleed property to control the size of the bleed area when crop marks are enabled.
-
Added support for a new prince-background-image-resolution property, for specifying the resolution of background images.
-
Added support for absolute and relative positioning of elements taken out of the normal flow and placed in a page margin box.
HTTP support
-
Added support for basic HTTP authentication with two new command-line arguments, --http-user and --http-password.
-
Added support for HTTPS URLs.
Platform support
-
Added support for Intel MacOS X machines by providing a universal binary.
-
Added support for FreeBSD 4.8.
Other bug fixes and improvements
-
Fixed bug affecting the vertical alignment of inline blocks with content longer than their specified height.
-
Added support for line breaking between adjacent images.
-
Improved shrink-to-fit support for pages to detect overlapping content.
-
Fixed bug in which absolutely positioned content was duplicated in some situations.
-
Fixed bug in which blocks in the normal flow with overflow set to hidden were not expanding in height to fit descendant floats.
-
Fixed bug in which images occupying no space resulted in PDF files that could not be opened by Acrobat.
-
Fixed bug in which the page-break-inside property was being ignored on table row groups.
-
Fixed bug in which images within hyperlinks were not clickable if they overlapped the bounding box of the containing link element.
-
Added support for links and cross-references into and out of footnotes.
-
Improved performance for formatting long documents with lots of text.
-
Added support for hyphenation regardless of the text alignment.
-
Fixed bug affecting large images loaded from data URLs on MacOS X.
Prince 6.0 rev 2 — June 2007
-
Fixed bug in which Prince was ignoring fonts on MacOS X if the font name contains the modifier "Book" instead of "Regular" or "Roman".
-
Fixed bug in which Windows-style CR/LF newlines in <pre> elements in HTML documents (not XHTML documents) incorrectly caused double line breaks.
-
Added further support for the HTML textarea element. Supported the rows attribute, changed white-space to pre-wrap and clipped text that overflows.
-
Fixed bug affecting the prince-jpeg-quality property when applied to grayscale JPEG images.
-
Supported the value attribute on the HTML li element, for explicitly specifying the list item number.
-
Changed @page background to cover entire page box, not just page padding area, for consistency with the CSS3 Paged Media specification.
-
Fixed bug in which elements containing only floated or positioned content still had a non-zero height, as if the content was still in the normal flow.
-
Fixed performance regression in CSS parser.
-
Added --media command-line argument to select available style sheets based on their media type, eg. "print" or "screen"; default is "print".
-
Added a new property to @page rules to shrink wide web pages down to fit the paper width: prince-shrink-to-fit: none | auto.
-
Changed margin collapsing at the top of first pages for consistency with browsers and the CSS3 Paged Media spec.
-
Support for @font-face rules that specify format("truetype") after the URL in the src property.
-
Fixed bug in which the aspect ratio of images with an explicitly specified width and height was not preserved if the image width is reduced by the max-width property.
-
Fixed bug in which tables ignored percentage height values.
-
Fixed bug in which user induced column breaks incorrectly caused a page break when there was content preceding the columns.
-
Fixed Linux and MacOS X install script so that it can be run from any directory, not just the current directory.
Prince 6.0 rev 1 — May 2007
Hyphenation
Support for English hyphenation using the following new CSS properties:
hyphens: manual | auto prince-hyphenate-patterns: none | url(...) prince-hyphenate-before: <int> prince-hyphenate-after: <int> prince-hyphenate-lines: no-limit | <int>
Please note that hyphenation will only be enabled for paragraphs on which text-align has been set to "justify".
HTTP
Support for loading all resources from HTTP URLs, including documents, style sheets, images and even fonts.
Rounded borders
Support for rounded borders using the following CSS 3 properties:
border-top-left-radius: <length> [ <length> ] border-top-right-radius: <length> [ <length> ] border-bottom-left-radius: <length> [ <length> ] border-bottom-right-radius: <length> [ <length> ]
(Similar properties are available in the Mozilla Firefox browser, where they are prefixed with "-moz-").
MathML
Initial support for MathML presentation and content markup. This is the first prototype of MathML support in Prince, so feedback from MathML users would be greatly appreciated.
SVG
- Support for the <use>, <symbol> and <defs> elements.
- Support for marker symbols on paths.
- Support for the fill-opacity and stroke-opacity properties.
- Initial support for linear and radial gradients.
Multiple Documents
Support for converting multiple input documents into a single output PDF file. Currently this functionality can only be accessed from the command-line. Useful for converting a collection of linked documents or an entire website into a single PDF file.
Columns
-
Support for unbalanced columns as well as balanced columns. The column type is controlled using the new
column-fillproperty:column-fill: auto | balance
In balanced columns, content is distributed among the columns such that they all have similar length. In automatic columns, the content simply fills each column one at a time, with the last columns shorter or entirely empty. This layout is commonly seen in articles produced using LaTeX.
-
Columns can be specified by width using the new
column-widthproperty or by number using the existingcolumn-countproperty:column-count: <number> column-width: <length>
-
A new
columnsshorthand property accepts either a number of columns or a column width:columns: <number> | <length>
-
Two new properties are available for inducing column breaks in content within columns:
column-break-after: auto | always column-break-before: auto | always
-
The properties for controlling page breaking now apply to content within columns. This includes
page-break-after,page-break-beforeandpage-break-inside. Specifically, a value ofavoidwill inhibit page breaking and column breaking.page-break-after: avoid /* also inhibits column breaks */ page-break-before: avoid /* also inhibits column breaks */ page-break-inside: avoid /* also inhibits column breaks */
-
The
widowsandorphansproperties now apply to content within columns.
Footnotes
-
Footnotes can now occur within page floats and within other footnotes.
-
The
footnotecounter is now incremented automatically at each footnote and does not need to be manually incremented. -
A new symbolic counter style allows footnotes to use common footnote symbols such as asterisks and daggers instead of just numbers:
::footnote-call { content: counter(footnote, symbols('*', '+', '!')) }
Floats
-
Support for column floats, which are similar to page floats but restricted to a single column instead of the whole page:
float: prince-column-top | prince-column-bottom
-
Support for optional floats, in which content is floated to the top/bottom of the next page/column only if it will not fit in the current location:
float: prince-top-if-necessary | prince-bottom-if-necessary float: prince-column-top-if-necessary | prince-column-bottom-if-necessary
This feature provides a flexible alternative to regular page/column floats, which always move the content to the top/bottom of the page/column. Regular page/column floats always move the content to the top/bottom of the page/column. Optional floats are more flexible: they only float the content if it doesn't fit on the page.
Both of these methods are good ways of including large images in a document without causing gaps to appear at the bottom of the page preceding the image.
Miscellaneous
-
A new property for replacing text:
prince-text-replace: none | [ <string> <string> ]+
For example, this can be used to replace straight single apostrophes with right single quotes without modifying the source document.
-
Support for the
xml:baseattribute and the XHTML<base>element. -
Support for CMYK colors using the
cmyk()function:color: cmyk(0.8, 0.5, 0.0, 0.3)
-
Support for RGBA colors using the
rgba()function:color: rgba(100%, 100%, 0%, 0.5)
-
Support for capitalization:
text-transform: capitalize
The
text-transformproperty now also applies to accented Latin characters. -
The
flowproperty now takes an optional second parameter allowing content to be flowed into headers/footers that are earlier in the document:flow: static(<ident>, start | current)
This is convenient when content at the end of the document needs to be placed in a header/footer at the beginning.
-
Support for the
font-stretchproperty on Linux and MacOS X, not yet on Windows. This property is used to select a particular font based on its width if multiple widths are available for a given font family:font-stretch: condensed
-
Improved CSS parsing and error reporting for invalid style sheets.
Prince 5.1 rev 15 — March 2007
- Fixed bug affecting filenames containing percent characters.
Prince 5.1 rev 14 — February 2007
- Fixed bug causing deadlock in some circumstances when Prince was called from Java.
- Improved document type autodetection.
Prince 5.1 rev 13 — December 2006
- Support translate(x) and rotate(r, cx, cy) in SVG.
- Fixed bug affecting text rotation in SVG.
- Fixed bug affecting text-anchor SVG property.
- Fixed bug affecting XLinks on SVG images.
- Fixed bug affecting data URLs containing whitespace.
Prince 5.1 rev 12 — December 2006
- Support for external SVG images and data URLs.
- Support for the <svg:image> element.
- Fixed bug affecting unknown elements in SVG.
- Fixed bug affecting large images in data URLs.
Prince 5.1 rev 11 — October 2006
- Improved automatic table layout for tables with cells that span columns.
Prince 5.1 rev 10 — September 2006
- Fixed bug affecting empty tables with specified width.
- Fixed bug affecting parsing of some HTML documents.
Prince 5.1 rev 9 — July 2006
- Workaround bug in Acrobat 7 affecting RTF export.
Prince 5.1 rev 8 — July 2006
- Added --baseurl option to specify the base URL of input documents.
- JPEG images are embedded as-is to reduce PDF file size.
- Support for the string-set property on pseudo-elements.
- Support for the background-image property on pseudo-elements.
- Fixed bug affecting string-set page policy.
- Fixed bug affecting table boxes (eg. captions).
- Fixed bug affecting GIF images in encrypted PDF files.
- Fixed bug affecting replaced pseudo-elements.
- Fixed bug affecting background-image URL resolution.
- Fixed bug affecting some SVG arcs.
Prince 5.1 rev 7 — May 2006
- CSS selectors are not case-sensitive when applied to HTML documents.
- MIME types are not case-sensitive.
- Support for the SVG text-anchor property.
- Support for decimal values in the SVG stroke-dasharray and stroke-dashoffset properties.
- Fixed bug affecting some SVG arcs.
- Fixed bug in which background-image did not apply to before/after pseudo-elements.
- Fixed bug in which exit status was not set in the event of an error.
Prince 5.1 rev 6 — April 2006
- Fixed bug that occasionally affected HTTP image downloads.
Prince 5.1 rev 5 — April 2006
- Support for the XHTML width and height attributes.
- Support for the XHTML <q>...</q> element for quotes.
- Added --log command-line option to log to a file.
- Support for escaped characters in URLs (eg. "test%20image.jpg").
- Fixed incorrect definition of height property on table cells.
- Fixed bug preventing some GIF images from being loaded.
- Fixed bug affecting formatting of very long documents.
Prince 5.1 rev 4 — February 2006
- Support for "none" as a counter style.
- Support for comma-separated string-set values.
- Fixed bug affecting colspan/rowspan in separated border model tables.
- Fixed bug affecting page-break-inside on tables with captions.
- Fixed bug affecting table cells with height property.
- Fixed bug affecting empty spans creating blank lines.
- Fixed bug affecting the scope of counters.
- Fixed bug affecting the parsing of invalid CSS syntax.
Prince 5.1 rev 3 — January 2006
- Support for loading images from HTTP URLs.
- Support for UNICODE characters in CSS strings.
- Fixed bug affecting tables with inconsistent cells and columns.
- Fixed bug affecting text-align on images in page margin boxes.
- Fixed bug affecting images disappearing in page margin boxes.
Prince 5.1 rev 2 — December 2005
- Further improvements to collapsing table border rendering.
- Fixed bug affecting table column widths with colspan cells.
- Fixed bug affecting vertical alignment on table cells.
Prince 5.1 — December 2005
- Prince now passes the Acid2 test.
- Support for loading HTML input (as well as XML/XHTML).
- Support for transparency in GIF and PNG images.
- Support for the XHTML <object> tag with fallback if an image cannot be loaded.
- Support for loading images and style sheets from data URLs.
Prince 5.0 rev 5 — December 2005
- Improved table border collapsing conformance to CSS 2.1 specification.
- Fixed bug affecting collapsing table borders on table cells spanning multiple columns.
Prince 5.0 rev 4 — November 2005
- Support for "content: none".
- Fixed bug affecting page counter reset on elements spanning multiple pages.
- Fixed bug affecting collapsing table borders on table cells spanning multiple columns.
Prince 5.0 rev 3 — November 2005
- Improved support for media queries.
- Support for applying transparent color to text.
- Fixed bug affecting long tables with collapsed borders.
- Fixed bug affecting page-break-before property on tables.
- Fixed bug affecting shrink to fit widths in some cases.
- Fixed bug affecting background property parsing.
Prince 5.0 rev 2 — October 2005
- Reduced memory usage when processing documents with many images.
- Increased speed when processing documents with many style attributes.
- Fixed bug affecting style attributes with leading space.
- Fixed bug affecting PNG images without a ".png" file extension.
- Fixed bug affecting drawing order of backgrounds and collapsed borders in tables.
- Fixed bug affecting the prince-flow property.
Prince 5.0 — October 2005
- Support for background-attachment property.
- Support for z-index property.
- Support for CSS2 system color keywords.
- Support for more border styles (groove, ridge, inset, outset, double).
- Improved rendering of backgrounds and borders.
- Improved conformance of CSS parser.
- Fixed bug affecting vertical alignment of nested inline elements.
- Fixed bug affecting the height of boxes containing floats.
- Fixed bug affecting empty table rendering.
- Fixed bug affecting very tall inline blocks.
Prince 5.0 beta 4 — August 2005
- Support for XML Inclusions (XInclude).
- Support for specifying page size in pixels.
- Support for specifying root element height as a percentage.
- Improvements to margin collapsing.
- Improvements to stacking order.
- Improvements to float positioning.
- Improvements to absolute positioning.
- Fixed bug affecting font scanning on MacOS X.
- Fixed bug affecting relative positioning and nested spans.
- Fixed bug affecting vertical margins on page floats.
- Fixed bug affecting min-height and max-height properties.
- Fixed bug affecting vertical-align on inline blocks.
Prince 5.0 beta 3 — July 2005
- Support for word-spacing property.
- Support for visibility property.
- Support for empty-cells property.
- Support for clip property.
- Support for table captions, table columns and column groups.
- Table cells/rows longer than one page will now be split.
- Improvements to background-repeat property.
- Improvements to vertical alignment for inline tables and inline blocks.
- Improvements to handling of blocks inside inline boxes.
- Windows GUI now remembers last path used to open files.
Prince 5.0 beta 2 — June 2005
- Added bookmark-target property to control PDF bookmark links.
- Support for xml:id attribute for cross-references and links.
- Support for :first page class on named page groups.
- Support for alternate and media attributes on xml-stylesheet instructions.
- Added --verbose option to list all loaded style sheets, fonts and images.
- Fixed bug with URL resolution in CSS style sheets.
- Fixed bug affecting colors in some GIF images.
- Fixed bug affecting incorrect empty namespace declarations.
- Fixed bug with embedding images inside display: none elements.
Prince 5.0 beta 1 — May 2005
- New Windows GUI with preview
- MacOS X command-line support
- Automatic font detection on all platforms
- Support for a wide range of UNICODE characters
- Optional PDF encryption with choice of 40 or 128-bit key size
- PDF links, bookmarks and metadata
- Support for GIF images and grayscale JPEG and PNG images
- Page headers/footers can use document content via string-set property
- Improvements to paged media duplex printing support
- Support for page floats
- Support for footnotes
- Support for cross-references
- Support for CSS positioning (relative/absolute/fixed)
- Support for letter-spacing property
- Support for min-width, max-width, min-height, max-height properties
- Support for overflow property
- Extended support for white-space property
- Extended support for line-height property
Prince 4.0 — October 2004
- Automatic table layout and shrink-to-fit float layout.
- Applies CSS specified in XHTML style attribute.
- Applies CSS specified in XHTML <style> element.
- Applies CSS referenced by XHTML <link> element.
- Compresses PDF files to save space and time.
- Embeds TrueType fonts in PDF files for accurate printing.
- Supports separated and collapsed table border models.
- Supports row-span and column-span properties on table cells.
- Supports auto margins for block alignment.
- Supports negative margins for flexible block positioning.
- Supports scaling images and SVG using width and height properties.
- Supports text-transform property for lowercase/uppercase transforms.
- Supports page-break-inside property for avoiding page breaks inside a block.
- Supports new display type for run-in headings.
- Supports the soft-hyphen character for controlling word hyphenation.
- Updated counter scope conforms to revised CSS specification.
- Fixes list item marker layout to conform to CSS specification.
Prince 3.1 — May 2004
- Improved support for SVG shapes and text.
- Supports vertical alignment including subscript and superscript.
- Supports backgrounds on pages.
- Supports advanced line height properties.
- Strips leading newlines from preformatted text.
- Fixes incorrect display of some PNG images.
- Fixes incorrect application of attribute selectors.
- Fixes incorrect calculation of percentage line heights.
- Fixes incorrect colors in SVG.
- Fixes incorrect order of text-decoration drawing.
- Fixes incorrect display of unknown counters.
Prince 3.0 — December 2003
- Supports images in JPEG, PNG and TIFF format.
- Supports new CSS3 Paged Media properties.
- Preserves white space in preformatted text.
- Handles relative font sizes, indents, margins, padding and borders.
- Renders inline blocks and inline tables.
- Loads entities from an external DTD catalog.
- Improved style sheets for XHTML and DocBook.
Prince 2.1.p1 — June 2003
- Fixes errors experienced on Windows NT, 2000 and XP
Prince 2.1 — June 2003
- Applies suitable default style sheets automatically
- Convenient interface for applying user style sheets
- Correct priorities for default, user and author style sheets
- DocBook style sheet supports
itemizedlistandvariablelist - Now also runs on Red Hat Linux 7.3
@importcorrectly handles relative file pathsxml-stylesheetcorrectly handles absolute file paths- Fixes incorrect default style sheet handling on Windows
- Fixes incorrect treatment of
line-break-beforeproperty - Fixes incorrect margin collapsing with floating blocks
Prince 2.0 — May 2003
- Graphical User Interface for Microsoft Windows™
- Multi-Column Layout and Floating Blocks
- Lists, Counters and Generated Content
- Page Headers / Footers and Duplex Printing
- Many additional CSS properties and selectors
- Support for the xml-stylesheet processing instruction
Prince 1.0 — April 2003
- First public release of Prince!

