April 2019
Explicitly tag headers and footers as pagination artifacts for all tagged PDFs, not just those in the PDF/UA-1 profile.
Fixed an issue where PDF/A validators might not have recognised
rdf:resource
attributes.
Fixed issues relating to images of unusual size.
Fixed a bug where the --pdf-xmp
option did not work correctly
when used through the control interface.
Fixed an issue when Prince would claim internal error: no area
.
Throw exception for JavaScript with too much recursion.
Fixed a bug where the JavaScript hash
property of anchor
elements is incorrectly percent-decoded and not prefixed with the
#
mark.
Fixed a bug in which a forced page break in a very tall fixed height block could cause Prince to hang.
Improved performance for very large CSS style sheets.
January 2019
Restricted redirects to HTTP and HTTPS URLs.
Added the new command-line option --no-redirects
which disables
redirects entirely.
November 2018
Support prince-pdf-page-layout: two-page
as an alias for
two-page-left
.
Fixed an issue where the overflow
property was incorrectly applied
to table rows.
Fixed a bug in which opacity set on an element could affect following filters.
Improved performance of tagged PDF for large documents.
September 2018
Fixed bug affecting fonts on MacOS 10.14 (Mojave).
September 2018
Fixed abort caused by Noto Glagolitic font having null offsets in the GSUB header.
Fixed bug affecting zero-sized soft mask images in SVG.
August 2018
Allowed the prince-filter-resolution
property to apply to individual
elements, not just the @prince-pdf
rule.
Applied hyphenation to text in white-space: pre-line
and
pre-wrap
blocks.
Gave transformed links and non-rectangular SVG links more accurate clickable areas (eg. for 45deg rotations).
Added support for HSL colors with the hsl()
and hsla()
functions.
Added support for the orientation field in JPEG and TIFF images with the new CSS
property image-orientation
.
Set the default language field in the PDF when the lang
or
xml:lang
attributes are present even for non-tagged PDF files.
Set the PDF direction based on the direction and writing-mode of the document root element to support right-to-left books.
Added support for the JavaScript Number.toExponential
method.
Fixed bug where links were not affected by CSS transforms.
Fixed masking of SVG image referenced by SVG image element.
Fixed bug affecting SVG feGaussianBlur
and feDropShadow
filters.
Fixed bug where the JavaScript String trim
function did not trim
non-breaking spaces or other Unicode space characters.
Fixed bug where the JavaScript Number.toFixed
function returned the
wrong result.
Fixed bug in the box tracking API where boxes in columns and flex containers could have the wrong parent.
Fixed bug with zero font size text.
Fixed an issue introduced in Prince 12 where PNG, GIF, and TIFF files would load slower on MacOS.
Avoided unnecessary rasterisation when applying drop shadow filters.
Clarified warning message about "filter resolution reduced by factor" that applies to overlarge images.
Fixed bug where HTML character entities are handled incorrectly if they are the very last thing in the file or in the innerHTML string.
Fixed an issue affecting whitespace collapsing around newlines in Thai text.
Fixed bug in which tables with max-width
set can end up
unnecessarily wide.
June 2018
Support for CSS flexbox layout.
Support for the :checked
, :disabled
, :enabled
,
:read-only
, and :read-write
selectors.
Support for the break-before
, break-after
, and
break-inside
properties as shorthands for the
page/column-break-before/after/inside
properties.
Support for column-gap: normal
.
Support for the tab-size
property, although without full tab alignment.
Support for percentage values for the word-spacing
property.
Support for setting the default zoom level with the prince-pdf-open-action
property (unfortunately only working in Acrobat).
Support for multiple chained actions for the prince-pdf-open-action
property.
Support for tagged PDF and the PDF/A-1a, PDF/A-3, and PDF/UA-1 profiles.
Support for combined PDF/A-1a+PDF/UA-1 and PDF/A-3a+PDF/UA-1 files.
Support for PDF object streams, to reduce the size of tagged PDFs and PDFs
with lots of link annotations. (Can be
disabled by the new command-line argument --no-object-streams
or
from JavaScript via the PDF.objectStreams
boolean property).
Support for a new --pdf-lang
command-line option and the
PDF.lang
JavaScript property for specifying the document language.
Raised default PDF version to 1.5.
Efficient support for large sparse arrays in JavaScript.
Support for the DataView
interface to JavaScript DOM typed arrays.
Support for octal integer literals in JavaScript.
Support for vertical tab as whitespace character in JavaScript.
Support for the DOM Document.compatMode
property, needed by KaTeX.
Execute capturing event handlers in the JavaScript DOM.
Expose individual columns in the box tracking API.
Expose footnotes and page floats area in the box tracking API.
Expose image URLs in the box tracking API.
Support for the U+2060 word joiner character.
Support for SSL client certificates with new command-line options.
Fixed bug where percentage widths on table cells that span multiple columns could be resolved incorrectly.
Fixed issue where the orphans property could cause footnotes to be unnecessarily moved to the next page.
Fixed issue where nested inline footnotes did not work properly.
Investigated issues where overflowing content interacts with page and column breaking.
Fixed issues affecting CSS clearfix techniques that cross page breaks.
Fixed some issues affecting CSS clearfix techniques that don't cross page breaks.
Changed column-count: 1
to behave differently from
column-count: auto
, for consistency with browsers.
Fixed some bugs with table minmax width calculation.
Fixed some bugs with resolution of percentage margins and paddings.
Don't collapse margins across block formatting context boundaries.
Fixed margin collapsing bugs involving percentage height
and
min-height
values.
Fixed margin collapsing bugs involving empty blocks that establish new block formatting contexts.
Fixed bug where margins would be repeated even when box-decoration-break
is set to slice
.
Made prince-hyphenate-lines
stricter and started to accept
prince-hyphenate-limit-lines
as an alias to bring it closer to CSS4.
Limited squeezing in justified text so that spans with white-space: nowrap
do not get squashed into overlapping themselves.
Correctly took block height
and min-height
into account
for blocks that cross page breaks.
Fixed JavaScript bug where whitespace would not be trimmed when convering strings to numbers.
Sped up accesses to JavaScript objects that have many properties.
Fixed JavaScript bug where carriage return was not treated as a line terminator and would not trigger automatic semicolon insertion.
Fixed bug where the JavaScript Function.bind
method would not
support a null first argument.
Fixed bug where the getElementsByTagName
DOM method would not lowercase
its argument.
Fixed bug where the DOM querySelector
methods should be case-insensitive
in HTML documents.
Fixed bug where the DOM attribute methods and others should be case-insensitive in HTML documents.
Allowed the DOM innerHTML
property to be set to strings containing NULL
characters.
Worked around bug in MacOS X Preview affecting OpenType CFF fonts.
Support non-Latin font family names properly.
Fixed bug affecting mark positioning in Thai text.
Fixed bug that could affect the positioning of nested marks in complex OpenType fonts.
Disabled the OpenType fina
feature by default for non-Arabic scripts.
Fixed issue where Prince would attempt to load img
elements with
empty src
attributes.
Fixed conformance issues for PDF/A and log numbers that went out of range.
Improved accuracy of text positioning due to PDF font units differing slightly from TrueType font units (1/1000 vs. 1/2048).
Fixed bug where PDF encryption disallow properties were inverted when set via the control interface.
Changed default PDF encryption key size from 40 bits to 128 bits.
Fixed bug that could affect the rasterisation of patterns inside filters.
Improved conformance for XMP metadata parsing.
Fixed bug causing crash on Ubuntu 18.04 virtual machine.
See the release history for earlier versions of Prince.