Reports, invoices and statements, straight from HTML and CSS.
PD4ML treats HTML and CSS as a page-layout language. You write content the way you’d build a web page, and PD4ML paginates and renders it as a production-quality PDF, RTF or DOCX.
It’s written entirely in Java and ships as one self-contained JAR. There are no native libraries and no headless browser to manage, so it runs anywhere a JVM does.
Wherever your documents are made.
Web applications
Generate PDFs on demand from HTML, JSP or templates in any Java web app, through the Java API or the JSP tag library (pd4tl:). A PHP wrapper around the command-line tool covers non-Java stacks.
Desktop and batch
Add reporting or “print to PDF” to a desktop application, or run large batch conversions with the bundled Pd4Cmd tool. All it needs is a JVM.
Command line
Convert a document with no code at all: java -jar pd4ml.jar <url-or-file> <width>. The same tool handles quick PDF tasks such as page extraction, merging and metadata inspection.
IBM Notes / Domino
Pipe DXL exports through a bundled XSLT and convert them to PDF. This path is actively supported for PD4ML v3 only.
What it actually does.
- A real CSS engine. Flexbox and CSS Grid are actually laid out, not just parsed, along with media queries, multi-column layout and vertical writing modes for CJK text.
- Full bidirectional text. Correct Unicode BiDi for mixed Latin, Arabic and Hebrew content, not a blanket left-to-right or right-to-left switch.
- Vector SVG and MathML. SVG is rendered as true vector output, and MathML formulas are typeset by a built-in formula engine.
- Page breaks done right. Break rules before, after and inside elements, widow and orphan control, and multi-column pages.
- Headers, footers, watermarks and backgrounds. Each can be scoped to a page range (“1”, “2+”, “3-7,odd”) and set through the API or with tags such as <pd4ml:page.header> in the HTML.
- Bookmarks and table of contents. Generated automatically from the document’s headings with <pd4ml:toc>.
- Footnotes and endnotes. Write them with <pd4ml:footnote> and <pd4ml:endnote>; numbering and placement are handled for you.
- Mixed page formats. Change page size, orientation or column width partway through a single document.
- PDF 1.4 to 2.0, PDF/A and PDF/UA. Archival PDF/A levels 1 to 4, and accessible PDF/UA with structure tags for headings, tables, lists, figures and links generated from your markup. More on standards
- ZUGFeRD and Factur-X. Produces the PDF/A-3 container these e-invoicing standards require, with the structured invoice XML embedded. Learn more
- Encryption. AES 128/256-bit and legacy RC4 40/128-bit, with fine-grained permissions for printing, copying, form filling and assembly.
- TrueType and OpenType embedding. Glyph subsetting embeds only the characters you use, with kerning and ligatures.
- Broad Unicode coverage. Most multilingual content works out of the box, without supplying custom fonts.
- One parse, many formats. Write the same document as RTF or DOCX, or rasterize it to PNG or TIFF, without parsing the source again.
- Fillable forms. HTML controls such as <input>, <select> and <textarea> become real AcroForm fields, not flattened graphics.
- PDF toolkit for existing files. A separate set of APIs and command-line tools works directly on existing PDFs: a low-level editing API, digital signing (PKCS#12, PKCS#11, HSM, RFC 3161 timestamps, PAdES-LTV), merging with accessibility-tag reconciliation, size optimization, and XFDF import and export.
Want the details first? Read the Programmers Manual, the HTML5 and CSS3 support matrix or the usage examples.
See every feature on your own templates.
Download PD4ML, request a free evaluation license and convert your first document in minutes.
