Release History

Prince 9.0

June 2013

Release notes for Prince 9.0


Prince 8.1

June 2012

Highlights

  • CSS3 Transforms.

  • JavaScript DOM improvements.

  • Experimental support for HTML5.

CSS Support

Support for CSS3 Transforms.

Support for "column-span: all".

Support for the ::first-line pseudo-element.

Support for named spot colors (separation colors) with new @prince-color CSS rule.

Support for inter-character justification in CJK text with new prince-text-justify property.

Support for overflow content to continue across multiple pages.

Changed "page-break-after: left | right" to leave a blank page if necessary at the end of the document, to guarantee an even page count.

Extended prince-linebreak-magic property to apply to \ characters.

Renamed prince-jpeg-quality property to prince-image-magic and added snap-to-integer-coords value.

Fixed bug where background images were not appearing on tables.

Fixed bug affecting page breaking of table rows with specified height.

Fixed bug affecting table cells that span multiple columns.

Fixed bug affecting ::first-letter pseudo-element and nested spans.

Fixed bug affecting prince-column-footnote outside of multi-column layouts.

Fixed bug affecting the hyphenation of capitalised and uppercase words.

Fixed bug affecting inline-blocks longer than a page preceded by a float.

Fixed bug affecting floats and hanging text indents.

Fixed bug where the background image for the footnotes area would be swapped with the background image for the page float bottom area.

JavaScript Support

Support for more DOM properties:

- style
- innerHTML
- textContent
- a.href
- a.name
- img.src
- input.value
- window.location.hash

Support for getElementsByClassName DOM method.

Support for URI encode/decode functions.

Added a new API for setting PDF output options.

Support for NUL characters in strings.

Added Math.seedRandom function for seeding the random number generator.

Exposed DOM prototype objects, eg. Node, Element, Attribute, etc.

Changed getElementsByTagName to return a live NodeList object.

Support for line-breaking in prince-script() generated content.

Support for evaluating script elements when they are added to the DOM.

Support for deprecated octal character escape codes.

Bogus <!-- comments are ignored.

Changed Number.toString method to comply with spec.

Support for { as a literal pattern character in regular expressions if it does not form the beginning of a quantifier.

Changed the location.href property to use absolute paths for file:// URLs.

Fixed bug where mod operator returned undefined for non-integer values.

Fixed bug causing abort due to big integer values.

Fixed bug where "typeof foo" could return undefined instead of "undefined".

HTML Support

Experimental support for HTML5 with "-i html5" on command-line.

SVG Support

Support for the SVG clipPath element and clip-path / clip-rule CSS properties.

Support for "display: none" and "visibility: hidden" on SVG elements.

Improved scaling of SVG when the viewport height is a percentage.

Fonts and Unicode Support

Support for zero-width joiner character in Arabic text.

Support for OpenType fonts with PostScript outlines (OTF/CFF fonts) installed as system fonts on Windows.

Checks the Panose proportion value in the OS/2 table when computing font-stretch for TrueType/OpenType fonts.

Avoids using CID font encoding in PDF files unless absolutely necessary, to workaround bugs in MacOS X Preview.

HTTP Support

Updated SSL certificate authority file.

Support for MIME type parameter values in quotes, eg. charset="UTF-8".

Fixed referer issue causing transient 400 errors for some HTTP requests.

Platform Support

Added Prince packages for Ubuntu 12.04.

Added Prince packages for FreeBSD 8.2.

Added Prince packages for CentOS / Red Hat Enterprise Linux 6.

Miscellaneous Improvements

New command-line argument -l / --input-list for specifying multiple input files in another file instead of directly on the command-line.

Fixed bug where # characters in filenames on the command-line were treated as fragment identifiers.

Fixed bug affecting Unicode filenames and command-line arguments on Windows.


Prince 8.0

September 2011

JavaScript Support

Added --javascript option for running HTML and SVG script elements.

Added --script=FILE option for running external JavaScript files.

Added prince-script() value for running JavaScript from CSS generated content.

Replaced the --log-stats option with a JavaScript API.

SVG Support

Added support for the SVG <style> element.

Added support for the SVG <switch> element.

Added support for scientific/exponential notation in SVG coordinates.

Fixed bug affecting non-break space characters in SVG.

Internationalization

Improved line-breaking for Chinese text.

Added support for Chinese, Japanese, and Persian counter styles for list numbering.

Font Support

Improved performance for fonts with many OpenType glyph substitution rules.

Fixed bug causing warnings and unnecessary kerning with some OpenType fonts.

Fixed bug affecting OpenType positioning in some OpenType fonts.

Added support for Unicode characters beyond U+30000.

HTML Support

Added support for style and link elements that occur in the document body.

Added support for the xml:base attribute on style and link elements.

Added support for hidden input elements.

Removed "max-width: 100%" from img elements, for browser compatibility.

Removed "line-height: none" from sub/sup elements, for browser compatibility.

Fixed bug where the type attribute was setting the list-style-type for non-HTML elements.

HTTP Support

Added support for images downloaded over HTTP with incorrect MIME types.

Added --http-timeout option to avoid waiting indefinitely for slow servers.

PDF Support

Added support for PDF attachments with --attach=FILE option and "show-attachments" value for the prince-pdf-page-mode property.

Added support for PDF bookmarks on pseudo-elements.

Added prince-pdf-page-layout property to control page layout in PDF viewer.

Added prince-pdf-page-label property for specifying PDF page labels.

Fixed bug affecting PDF bookmarks on repeating table headers and footers.

CSS Support

Added :nth() page selector.

Added support for the prince-link property on pseudo-elements.

Changed default value of prince-image-resolution property to "normal".

Changed page vertical margins to be resolve percentages relative to height, not width.

Added device-cmyk() as an alias for the cmyk() color function.

Fixed bug where counter scopes were incorrectly extended outside of parent elements.

Fixed bug where the width property had no effect on page margin boxes.

Fixed bug affecting positioned blocks inside justified paragraphs.

Fixed bug where text decoration did not work properly with text-indent.

Fixed bug where forced page breaks in list items would cause the marker to be repeated.

Fixed bug affecting table cells that span rows and break across multiple pages.

Fixed bug affecting empty inline tables and HTML <select> elements.

Fixed bug where cmyk() and rgba() background colors were not being applied to table rows and row groups.

Fixed bug where space before commas in CSS selectors resulted in rules being ignored.

Fixed bug where @charset rules would block @import rules.

Changed leaders to expand before performing text alignment.

Fixed bug affecting empty leaders.

Columns Support

Added support for the column properties on table cells and list items.

Added support for inset/outset/ridge/groove/double column rule styles.

Fixed bug where the column-break-before and column-break-after properties only worked on direct children of an element with multi-column layout.

Fixed bug where column floats in nested multi-column layouts went to the outer column, not the inner column.

Fixed bug affecting "float: prince-column-top-if-necessary" on elements not inside columns.

Fixed bug affecting column floats and footnotes inside other floats, inline and absolutely positioned blocks, and table cells.

Miscellaneous Improvements

Improved speed and reduced memory usage for large documents.

Updated the default hyphenation dictionaries.

Added support for baseline alignment of MathML content.


Prince 7.1

May 2010

Fonts and Unicode Support

Added support for the WOFF font file format.

Added support for OpenType extension lookups needed for kerning with the Arno Pro font.

Added support for the OpenType GDEF table, needed by some Arabic and Indic fonts.

Added support for OpenType positioning rules with vertical placement.

Added new command-line option --no-artificial-fonts to disable synthesised bold and italic fonts.

Improved handling of symbolic fonts with no Unicode charmap, such as Wingdings and barcode fonts.

Added support for Unicode characters up to U+30000.

Right-to-left and left-to-right bidi marks are now treated as non-printing characters.

Fixed bug where hyphenation could prevent ligature formation.

Fixed bug where punctuation could interfere with kerning and other OpenType features.

Fixed bug affecting some OpenType chaining contextual substitutions.

Fixed bug where non-embedded fonts could still be subset.

Fixed bug affecting unquoted font-family names that include numbers.

Fixed bug affecting Fontconfig on Red Hat Enterprise Linux 4.

SVG Support

Added support for bidirectional text layout in SVG.

Added support for multiple x/y/dx/dy and rotate values on text elements in SVG.

Added support for the letter-spacing and word-spacing properties in SVG.

CSS Properties

Added the table-baseline property, needed for MathML for CSS.

Added the border-break property.

Added the prince-border-clip property, used for specifying the length of the border on the @footnotes area.

Added the prince-pdf-open-action property to specify actions such as printing that should take place automatically when the PDF file is opened.

Miscellaneous Improvements

Added support for internal links in documents with multiple base URLs.

Added support for commonly used HTML5 elements, such as section.

Added prince-base-url() value to content property for accessing document URL.

Changed prince-pdf-link-type property to apply to bookmark links as well as normal links.

Added an experimental --fileroot option for specifying the root directory used to resolve absolute filenames.

Grayscale TIFF and PNG images are no longer expanded to RGB.

Invalid intrinsic resolutions in JPEG images are now ignored.

Fixed bug affecting collapsing borders for footers on tables that span page breaks.

Fixed bug affecting line-breaking of string-set values used in flowed blocks.

Fixed bug where margins could collapse through blocks with "overflow: hidden".

Fixed bug where words containing apostrophes would not be hyphenated.

Fixed bug affecting preformatted whitespace between spans in HTML documents.

Fixed bug affecting style sheets beginning with a UTF-8 BOM immediately followed by an identifier.


Prince 7.0

October 2009

Hyphenation and Justification

New TeX-style algorithm for high-quality line-breaking and justification.

Added hyphenation dictionaries for more European languages.

The last word in a column or page can now be hyphenated.

Internationalization

Support for Arabic and Hebrew with OpenType fonts.

Support for Indic scripts with OpenType fonts. (Devanagari/Hindi, Bengali, Gurmukhi/Punjabi, Gujarati, Oriya, Tamil, Telugu, Kannada, and Malayalam)

Support for bidirectional text and layout, needed for right-to-left scripts. This includes support for the Unicode bidirectional layout algorithm, the CSS direction and unicode-bidi properties, and the HTML dir attribute and bdo element.

The text-transform property now supports Greek, Cyrillic, and other scripts, in addition to Latin.

Support for the arabic-indic style for counters and lists.

Font Support

Support for OpenType CFF fonts (.otf files).

Support for ligatures, kerning, and small-caps with OpenType fonts.

Support for automatic mark positioning with OpenType fonts.

Support for nine levels of boldness using the font-weight property.

Support for synthesized bold and italic fonts when a true bold or italic font is not available.

Improved system font scanning on Linux, MacOS X, and Windows.

Fixed bug affecting TrueType Collection fonts on Windows.

Fixed bug affecting the merging of related font subsets.

Changed the way @font-face rules are processed to follow the latest draft of the CSS3 Fonts module.

Support for the unicode-range descriptor on @font-face rules.

Added 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.

CSS Properties

Support for the CSS3 box-sizing property.

Added a new property, prince-pdf-destination, to create named destinations in generated PDF files.

Added a new property, prince-pdf-link-type, to control whether web or file links are created in generated PDF files.

SVG Support

Support for the shorthand "font" property in SVG, and the font-variant and font-stretch properties.

Support for fallback colors used in SVG paint specifications, eg. for the fill property.

Fixed bug where the SVG fill-opacity property was not inherited.

Miscellaneous Improvements

Added Prince package for 64-bit Linux.

Added --log-stats command-line option for printing document statistics such as the total page count.

Added --insecure command-line option to disable checking SSL certificates.

Added --ssl-capath and --ssl-cacert options for compatibility with curl.

Support for creating footnotes with the float property.

Support for multiple page selectors on the same @page rule.

The page and pages counters can now be incremented and reset on block elements.

Support for four values on the prince-trim and prince-bleed properties, similar to margins and padding.

Fixed bug where the "inherit" keyword was not correctly applied to page margin boxes.

Added support for times to Date metadata values in XHTML.

Absolutely positioned blocks can now extend beyond the page border.

Unbalanced columns will now break to fit in blocks with specified height.

Fixed bug where blocks with specified height could break across pages.

Fixed bug where margin box backgrounds did not extend into the page bleed area.

Fixed bug where page background was rendered incorrectly on landscape pages.

Fixed bug affecting the height of blocks with "overflow: hidden" containing floats.

Fixed performance regression affecting multi-column layouts inside positioned blocks and inline blocks.

Fixed bug affecting text-align on narrow lines.

Fixed bug affecting the width of shrink-to-fit boxes (eg. inline blocks, table cells and floats) containing multiple columns.

Fixed bug where the HTML align attribute on <tr> elements did not affect <th> elements.

Fixed bug where internal links to documents with /../ or /./ in the path name were not resolved correctly.


Prince 6.0 rev 8

February 2009

  • Support for the image/jpg MIME type as an alias for image/jpeg.

  • Improved support for repeating background images using PDF patterns to reduce file size.

  • Fixed bug where progress counter was reset by page breaks in the document.

  • Fixed bug where no Accept-Encoding HTTP header was being sent and responses using gzip transfer encoding were not processed correctly.

  • Fixed bug where only a limited number of documents could be added to the GUI in one operation.

Layout

  • Page borders now extend into the bleed area as well as page backgrounds.

  • Fixed bugs affecting line height when small-caps or vertical alignment are enabled.

  • Removed support for the text-height property, which has been dropped from CSS 3.

  • Fixed bug where the column-break-before and column-break-after properties were ignored.

  • Fixed bug affecting the hyphenation of words with leading punctuation, such as quotes.

  • Fixed bug affecting the width calculation of cells in fixed-width tables.

  • Fixed bug where text-decoration did not apply to page margin boxes.

  • Fixed bug where text-decoration did not apply to a span containing only nbsp characters.

SVG support

  • Added support for tiling patterns in SVG.

  • Fixed performance issue where SVG images would be reloaded every time they were used.

HTML support

  • Added support for "date" as a meta tag in HTML and XHTML documents.

  • Fixed bugs affecting HTML files saved as UTF-8.

  • Fixed bugs affecting HTML files containing control characters.


Prince 6.0 rev 7

September 2008

  • Added support for CMYK TIFF and JPEG images.

  • Fixed bug affecting the resolution of TIFF images.

  • Update string-set values on each page for content that has been flowed into the page margin boxes.

  • Fixed bug affecting the layout of inline elements with horizontal borders that span multiple lines.

Hyphenation

  • Fixed bug affecting hyphenated words breaking across pages.

  • Fixed bug affecting the hyphenate-before and hyphenate-after properties when using non-ASCII hyphenation patterns, such as Russian.

Tables

  • Block-level tables may now be pushed aside by floats.

  • Fixed bug where the text-decoration properties were ignored on table cells and rows.

  • Fixed bug where the min-width and max-width properties were ignored on table cells.

  • Fixed bug where the overflow property was ignored on table cells.

  • Fixed bug where the page break properties did not apply inside table cells.

  • Fixed bug affecting the width of tables with collapsed borders.

HTML support

  • Changed default styling on the pre element to add top and bottom margin for compatibility with browsers.

  • Changed default styling on the br element for compatibility with browsers.

Performance improvements

  • Improved performance for documents containing many id attributes.

  • Reduced memory usage for documents containing many elements and CSS rules, such as documents with thousands of table cells.

Platform support

  • Support for the image/x-png MIME type used by Internet Explorer.

  • Fixed bug creating zombie processes when running Prince from CGI scripts on Windows.

  • Fixed bug where some font family names were hidden on Linux, FreeBSD and Solaris.


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-fill property:

    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-width property or by number using the existing column-count property:

    column-count: <number>
    column-width: <length>
    
  • A new columns shorthand 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-before and page-break-inside. Specifically, a value of avoid will 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 widows and orphans properties now apply to content within columns.

Footnotes

  • Footnotes can now occur within page floats and within other footnotes.

  • The footnote counter 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:base attribute 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-transform property now also applies to accented Latin characters.

  • The flow property 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-stretch property 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 itemizedlist and variablelist
  • Now also runs on Red Hat Linux 7.3
  • @import correctly handles relative file paths
  • xml-stylesheet correctly handles absolute file paths
  • Fixes incorrect default style sheet handling on Windows
  • Fixes incorrect treatment of line-break-before property
  • 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!