Generate dynamically PDF reports, invoices, statements and other documents on
the fly from HTML-formatted data

PD4ML is simple yet powerful. It’s designed so you can get up to speed and productive in a few minutes. It uses HTML and CSS (Cascading Style Sheets) as page layout and content definition format. Written in 100% pure Java, it allows users to easily add PDF generation functionality to end products by just an adding of a single JAR file.

The main use scenarios for PD4ML

  • Using in Online applications

    Using PD4ML in Web applications for online PDF generation from HTML, JSP or ColdFusion® templates. In order to get PDF output, all what you need is to surround your JSP or ColdFusion® markup with <pd4ml:transform> tags or refer to the markup from an external PD4ML-enabled JSP or Servlet. With PD4ML PHP wrapper PDF generating functionality can be added to virtually any PHP application.

  • Desktop applications

    Adding PD4ML to desktop Java applications for reporting or to achieve professional grade print functionality provided by modern PDF viewers, like Adobe® Acrobat Reader®.

  • Conversion of IBM Notes/Domino documents

    Automatic PDF generation in IBM Notes®/Domino® environment using PD4ML-enabled Lotus Java agent.

  • Using PD4ML CLI everywhere

    HTML to PDF transformation with a standalone command-line converting Java tool Pd4Cmd in virtually any environment, which has Java support

Usage Examples collection is the best place to start if you are new to PD4ML

Usage Examples

Key features of PD4ML

  • Convert an URL or HTML string to a PDF file or byte stream
  • PDF/A-1b output support for long term electronic document archiving
  • Generate Tagged PDF
  • Generate accessible PDF/A-2a and PDF/UA conforms Section 508 requirements
  • Support of inline and external CSS stylesheets
  • Set PDF page format and orientation
  • Control page margins
  • Define PDF headers and footers in HTML (including images and page numbers)
  • Embed and use True Type and Open Type fonts.
  • Support most of Asian, Middle-East, European and Latin character sets
  • Generate external and internal hyperlinks
  • Control header/footer appearance on selected pages
  • Embed media or document attachments to PDF
  • Switch PDF encryption on and assign document security restrictions. PD4ML allows you to secure your PDF documents with 40-bit/128-bit encryption. You can disable printing, modifications or extracting of text content, you can lock your PDF with a password.
  • Generate PDF bookmarks from named anchors or from  <H1>-<H6>
  • Create PDF bookmark hierarchical structure using proprietary <pd4ml:bookmark> tags
  • Generate table of contents based on <H1>-<H6> structure
  • Customize page background (color or background image)
  • Watermark pages. Specify if the watermark has to be shown by PDF viewers, to be printed, or both.
  • Override hardcoded document style with additional CSS style sheets
  • Provides support for PDF forms
  • Converting of SVG images to vector PDF graphics
    using either built-in SVG renderer or a pluggable component, based on Apache Batik
  • Support of MathML conversion
  • HTML/CSS to raster image conversion (BufferedImage, PNG, multipage TIFF)
  • HTML-to-RTF conversions
  • PDF manupulation API: documents merge, meta-data updates, deletion of
    selected pages, document securing/unsecuring, document info read (number of pages,
    creation date, author etc)
  • Supports automatic font kerning in PDF


Currently PD4ML is available as 100% Java library, JSP
custom tag library
, Lotus Notes Java agent (includes DXL-to-HTML
XSLT stylesheet), managed code .NET port of the
Java library, a variety of wrappers for scripting languages: Perl,
PHP, Ruby etc.