PD4ML v4.1.0 is out. It is the first release of the v4.1 line and inherits all bug fixes of PD4ML v4.0.22. On top of them it brings standards compliance control, XML invoices, error policies and AES encryption; the overview is in New in PD4ML v4.1.0.
New features
- PDF standards compliance: you specify the PDF standard the output must comply with, and the PDF version and extension level can be set with a new API method. See Compliance with PDF standards.
- PDF/A-2b and PDF/A-3b output, in line with the current PDF, PDF/A and PDF/UA specifications.
- ZUGFeRD and Factur-X: hybrid PDF invoices with embedded XML invoice data. See ZUGFeRD and Factur-X PDF Invoices generation.
- Error policies define whether errors are ignored or thrown to the caller:
RELAXED(default, ignore errors where possible),NORMAL(throw an exception on errors),PEDANTIC(also treat possible PDF/A and PDF/UA incompatibilities as errors) andSTRICT(throw even on warnings, e.g. when a fallback font is needed). - AES encryption; AES-128 is the default encryption method.
<video>and<audio>elements are supported.- SVG text along a path (
<textPath>) is rendered. - Hindi text, e.g. in the Mangal font, is shaped with the right ligatures.
Layout and rendering
- Conditional page breaks break the page when the space below is too small, as in PD4ML v3.
- A page footer at the end of a table no longer overlaps the last table rows.
<ol start>is honored.adjustHtmlWidth()is no longer confused by center-aligned elements.- Arabic words mixed with English text are rendered correctly.
- Inline SVG content is converted.
- An image is no longer repeated and followed by a black area (a regression of v4.0.9).
API and fixes
- Kerning no longer causes a
NullPointerException. - Disabling the cache with
Constants.PD4ML_CACHE_ENABLEset tofalsetakes effect. - Appending a PDF without a password no longer fails with
InvalidPasswordException: No password given. - A TrueType font used at several sizes is embedded once, not once per size.
Documentation
- The documentation is updated to PD4ML v4, and the website moved from pd4ml.tech to pd4ml.com.
