Release Notes
1.4 (2025-08-04)
-
Added a [Security] section to the documentation, to collect all information on this topic in one place.
-
Disable
xi:include
and XML external entity resolution by default (see [Security] for details) -
Rewrote the egress filtering for more granular control, for easy creation of site specific policies (see [Security])
-
Added support for CSS nesting, eg
body { div { color: red } }
, and CSS cascade layers, eg@layer foo { div { color: red } }
-
Add support for OpenType variable fonts
-
Add support for EA-PDF, the new (2025) archival standard for converting email to PDF.
-
Added support for
:active
,:hover
and:checked
pseudo-classes on (some) form fields. Default stylesheet incorrectly sized fields withcontent-box
, nowborder-box
to match browsers. Disablefilter
property on fields, this requires rasterizing and it can’t be supported. -
Added support for attachments to file annotations and tags
-
Bumped embedded Netty from 4.1.79 to 4.1.122, and set it to support content-encoding with gzip, deflate and zstd if available
-
WebSocket interface is no longer sensitive to the order of properties (except that authorization should always come first). WebSocket interface accepts Authorization as an initial HTTP header, correctly handles interleaved requests over a single WebSocket connectin, and detects and handles lz4/zstd/gzip compression of CBOR.
-
WebService can be run from a JavaEE servlet container as well as via the built-in Netty server.
-
MathML
<mprescripts>
elements, and the text-extractable bit of stretchy brackets, are properly written to tagged PDF output. -
Fixed internal hyperlinks links to elements like
<a name="foo">
-
Added
origin
key to authorities, for [Access Control] using CORS. -
Added
bfo-no-processing-instructions
parameter when attaching XML, to make life easier for Factur-X producers -
Corrected priority of legacy HTML presentation hints (between "user" and "author" origin stylesheets, not before "user")
-
Several fixes to improve the conversion of generated PDFs back to HTML.
-
Zero-width borders are no longer drawn; they were not visible in most PDF viewers but were causing hairlines in Acrobat.
-
Many fixes to legacy Report Generator XML processing; added graphs, pdfset, many layout fixes.
-
Size of boxes in page margins now matches specification exactly
-
CSS properties
font-size-adjust
,font-family: generic(n)
,font-width
,font-synthesis-position
,text-box-edge
"hue longer" interpolation in gradients, updated to reflect latest changes to spec. -
Merge PDF layers with the same name, even if they’re not contiguous in the input document.
-
Artifact thead/tfoot output on pages after the first, for PDF/UA output.
-
Add
aes-256-gcm
as a valid cipher for encryption, as defined in ISO32003 -
Add
auspost4s
barcode format, for Australian Post. -
Add
column-span
CSS property support -
Add support for setting [PDF Declarations]
-
Many, many small edgecases layout and bug fixes, particularly for flex and multicol layout.
-
Upgraded underlying PDF library from 2.28.4 to 2.29.2: this adds Java 24 support; performance enhancements for Amazon CloudHSM v5 signatures; correct XMP extension types scoping for PDF/A-1 to PDF/A-3; 16-bit TIFF image support;
1.3 (2023-08-01)
-
Added ZTemplate and Apache FreeMarker support, see FreeMarker and ZTemplate Templates.
-
Added support for embedding BFO Graph Library graphs, see Graphs
-
Added support for Factur-X invoice processing, see Factur-X
-
Many improvements to PDF/UA output, and added support for soon-to-be-published PDF/UA-2
-
Redid the
ext.MailExtension
class to add support for Configurations, including the first early draft of PDF/mail-1s. -
Include
javax.mail
andjavax.activation
into the "bundle" Jar, to allow conversion of RFC822 email to PDF without any additional Jars -
Added
-bfo-layer-type: file
to create a file attachment. -
Fixed the importing of metadata with
<link rel="meta">
, which was broken if used more than once, and also broken if specified as a<?link?>
processing instruction (which we hadn’t documented; see Linking Resources). -
Updated
:has()
and:lang()
to the syntax from the latest draft, and fixed a couple of points where the distinction between invalid and non-matching selectors was not clear -
Added support for the draft css-link-params specification
-
Fixed some issues with
filter()
function -
Added support for generated content inside SVG, eg
text::before { content: var(--param) }
-
Add support for
column-span
elements from css-multicol -
Added support for tables inside multicolumn alements
-
Correct distinction between three-value logic in
@media
and two-value logic in@supports
-
Fixes when using multiple
<?xml-stylesheet?>
declarations with XSLT stylesheets. -
Add GlobalSign QSS signatures
-
General layout improvements, mostly in multi-column layout
-
Upgraded underlying PDF library from 2.27 to 2.28.4: this adds "sha3-256", "sha3-384", "sha3-512" as options for
hash
when signing, and adds support for Ed25519 and Ed448 key algorithms; fixes QR-Code issue with Kanji; improves PDF/UA and PDF/A output profiles
1.2 (2022-08-31)
-
Fix for loading
file
URLs on Windows -
Fixed hyperlinks in SVG so they reflect the outline of the content rather than the bounding-box.
-
clip-path
set on aninline-block
element was not clipping properly. -
General fixes for 3D transforms; fix clip when
overflow:hidden
on grandparent andtransform
on parent. -
SVG
<a>
elements now closely wrap the content, rather than the rectangular box. -
Opacity was being applied twice when it was set on an element with filter
-
Automatically convert MathML "content markup" to "presentation markup"
-
Fixed static position of inline absolute where it was the first child of the parent.
-
Implemented
reversed()
function for counters, fixed positioning for inline counters.
1.1 (2022-07-28)
-
"display:grid" was causing a hard failure, but should instead have been simply unrecognised
-
"lookahead" mode was undocumented and should be on by default (it was off). Added documentation.
-
Trim any trailing blank pages from the PDF output
-
Several fixes to footnote sizing/positioning. Footnote regions now accept
max-height
and fragment across pages. -
Several fixes to flex layout.
-
Fixed a multi-column layout issue relating to column balancing.
-
Removed some debug output
-
Adjust webservice logging to record IP of remote host, and log local times rather than UTC
-
Added
proxy_servers
andauthorities.from
to web-service configuration options, to allow limiting access to the web-service by IP. -
Fixed some issues in the webservice where HTTP Keep-alive would sometimes fail
1.0 (2022-07-18)
-
Initial Release
-
Build on PDF Library 2.26.5
Known Issues
Short / Medium term (under development or scheduled).
-
CSS Flex layout has bugs. Flex items do not currently fragment.
-
CSS Multi-column layout module has bugs. Footnotes in multi-column containers are not yet implemented.
-
RTL table layout is not working
-
transform-style: preserve-3d
is not yet implemented.
Long term issues; no planned development
-
CSS Grid layout
-
CSS Ruby layout
-
CSS
writing-mode
for vertical text -
text-emphasis
markers -
CSS region fragmentation
-
OpenType 1.9 COLRv1 color fonts
-
OpenType variable fonts
-
SVG2 multi-line text
-
The
plus-lighter
andplus-darker
blend modes have no PDF equivalent so can’t be implemented.