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

 

PD4ML is a powerful PDF generating tool that 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.

PD4ML is simple yet powerful. It's designed so you can get up to speed and productive in a few minutes.

The main use scenarios for PD4ML
  • HTML to PDF transformation with a standalone converting Java tool Pd4Cmd
  • 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.
  • Adding PD4ML to desktop Java applications for reporting or to achieve professional grade print functionality provided by modern PDF viewers, like Adobe® Acrobat Reader®.
  • Automatic PDF generation in IBM Notes®/Domino® environment using PD4ML-enabled Lotus Java agent.
The Usage Examples is the best place to start if you are new to PD4ML.
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> structure
  • 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.