by zefer|org - Product Type: Component / Add-In / Java Servlet / Java Class / JavaServer Faces (JSF)
PD4ML by zefer|org
URLs: pd4ml, zefer
Add PDF generating functionality to your Java/PHP/Lotus applications. PD4ML is a 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. With PD4ML you can control PDF page size, orientation and page breaks, while adding formatted headers, footers and page numbering. PD4ML is Unicode compatible to support most of Asian, Middle-East, European and Latin character sets. True Type and Open Type fonts embedding is supported including font styling such as Bold and Italic.
PD4ML is a compact Java library which implements an optimized HTML rendering engine and PDF output module.
PD4ML requires only one external free open source component "CSS Parser". So in order to add PDF output functionality to your product you only need to add 2 JAR files: pd4ml.jar (452KB) and ss_css2.jar (160KB)
PD4ML also offers JSP custom tag library pd4ml_tl.jar (30KB), which allows you to convert existing JSP pages to PDF documents with minimal effort. In the simplest case you only need to surround JSP code with <pd4ml:transform> and </pd4ml:transform> tags.
The main PD4ML library pd4ml.jar includes a standalone GUI/command line tool PD4Browser, which can be activated with the command: java -jar pd4ml.jar [url] [output_file]
The tool auto-generates a property file pd4browser.properties after the first start. The file allows you to "fine-tune" PDF generation processes. The properties of the file correspond to PD4ML API calls/properties. The most important settings are the following:
"pageFormat" - physical target page format like A4, LETTER etc. This can be also given as dimensions in typographical points or millimeters.
"htmlWidth" - an analog of web browser frame width. The HTML is rendered respecting the width; the width is mapped to the width of the chosen pageFormat.
"pageInsets" are page margins. The actual HTML-to-PDF scale factor is calculated in the following manner: scale = (pageFormat.width - pageInsets.left - pageInsets.right) / htmlWidth
From a technical perspective there are 2 types of PD4ML software: PD4ML Library and PD4ML Library Pro (PD4ML Pro binary is a part of PD4ML Volume and Source Code distributions). The Pro version is a superset of the Standard version and adds the following features:
TTF Embedding allows to add any type of fonts to the resulting document in addition to the basic PDF fonts of Std version: Serif, Sans-Serif, Monospaced
Supportof national character sets. Std version is limited by Latin
Autogeneration of TOC, multicolumn output, smart table split and some other features
PD4ML Java Library and PD4ML Java Library Pro are single licenses. A single license is valid for a group of developers or for a single desktop product title or for a single Web deployment or for a single Lotus Notes/Domino database (and all replicated copies of the database).
PD4ML Volume License and its extension PD4ML Source Code License allows you to deploy PD4ML libraries (PD4ML or PD4ML Pro) with your Web or desktop applications to an unlimited number of client computers or Web servers.
Due to the platform-independence of Java, PD4ML works well with a minimalistic wrapper code in PHP, Lotus, Coldfusion and Ruby environments.
PD4ML is available in a number of different license options which have the following features:
FeaturePD4ML Java LibraryPD4ML Java Library ProPD4ML Volume SourcePD4ML Source Code License
Java library for HTML 3.2 to PDF convertingXXXX
Standalone tool for HTML 3.2 to PDF convertingXXXX
Include images to PDFXXXX
Encrypt resulting PDFXXXX
Assign read/print permissions to PDFXXXX
HTML templates for headers/footers XXX
Custom JSP tags for easy PDF convertingXXXX
Support for national character sets XXX
Embedding of TTF/Open Type fonts XXX
Table of Contents generation XXX
One year of email support and free updatesXX
Product lifetime email support and free updates XX
Unlimited number of deployments XX
Access to source codes of PD4ML X
Highest priority of issue processing and change requests implementation X
New in PD4ML Pro 3.6.0fx1
— entity wrongly interpreted when TTF embedding is switched off
not closed head tag results a blank document
background-image: none/inherit CSS property causes an undesired resource request
New in PD4ML Pro 3.6.0fx1b6
New API method pd4ml.useHttpRequest(HttpServletRequest, HttpServletResponse) allows PD4ML to load resources via HTTP RequestDispatcher
New API method pd4ml.clearCache() removes all internally cached resources
­ entity support
By multi-document conversion some documents may loose HTML background
"overflow: hidden" does not work for textarea tag
New in PD4ML Pro 3.6.0fx1b1
New configuration switch m.put(PD4Constants.PD4ML_ABSOLUTE_ADDRESS_SPACE, "document") to switch PD4ML into backward compatibility mode of absolute positioning
b tag does not work, however "text-weight: bold"does (introduced in v360)
Default text align in dir="rtl" mode is "left", instead of "right"
Errors by parsing of particular PNG sub-types.
Text style of legend tag is not overriddable with CSS.
New in PD4ML Pro 22.214.171.124
Pd4Cmd command-line HTML-to-PDF converter
Invalid text background inheritance
MS-Office-specific 'windowtext' and 'window' color names ignored
No table cell background if the cell contains <br> tag only.
Minor text flow issues
New in PD4ML Pro 3.6.0b3
Tooltips from TITLE attributes
New PD4Util class with the first utility methods: pd4fonts.properties generation API
Minor dynamic font substitution logic issues
Some PNG images may cause resulting document format corruption
Bottom and top table breaks borders render refinement
New in PD4ML Pro 3.6.0b2
Page-oriented address space for absolutely positioned elements.
Basic HTTP authentication support
A possibility to define bottom and top borders for table breaksJSP taglib mapping of PD4ML.setDynamicParams()
Blank page suppress logic
MIME decoder for Lotus Notes attachments
relative image references from stylesheet use document location instead of the stylesheet location as docbase
relative hyperlinks point to local filesystem instead of locations related to document's URL
possible 1-2px gap between header/footer and page edge
New in PD4ML Pro 3.6.0b1
PDF/A< support (PD4ML Volume DMS Edition)
pd4ml:toc tag can be inserted at any place of the document now.
pd4ml:page.break tag allows to control document page numbering and to insert an extra blank page to guarantee the next page is even or odd
hyperlinks in header or footer work not always
entities in attributes are not substituted with values if the attribute name is uppercased
invalid results of "font-size: inherit" and "font-family: inherit"
single images, tables and input elements do not position absolutely
"TD+TD+TD" CSS selectors are overridden by "TD+TD"
New in PD4ML 3.5.1
Fixed bugs: - few minor issues
New in PD4ML Pro 3.5.1b1
PNG image alpha layer support
A possibility to place <style> outside of <head>
new API method allows to limit a range of of PDF pages to output
percentage IMG width support
"overflow: hidden" not always correctly interpreted by document height calculation and the "hidden" content may cause extra blank pages to appear.
<pd4ml:footnote> definition after <pd4ml:page.break> makes the footnote to print on a wrong page
<pd4ml:footnote> content overlapped by page background (if any)
Bullet points of <li> do not inherit text color
New in PD4ML Pro 3.5.0
HTML-to-BufferedImage output module
New in PD4ML Pro 3.5.0b6 - Fixed bugs:
mixed nesting of absolutely and relatively positioned elements may result a broken layout
external relative PDF hyperlinks are converted to absolute ones. In some cases they erroneously point to the local file system.
inline header/footer definitions may be impacted by neighbor floats, which results undesired margins.
nesting of ordered and unordered lists issues.
New in PD4ML Pro 3.5.0b4 - Fixed bugs:
multiple minor issues
New in PD4ML Pro 3.5.0b1
limited support of position: absolute and position: relative block element styles
<pd4ml:footnote> and <pd4ml:footnote.caption> tags
support of plugged custom resource loaders
empty <a name="identifier"></a> anchors ignored
Add PDF generating functionality to your Java/PHP/Lotus applications.
Evals & Downloads: Read the PD4ML Documentation, Read the PD4ML Java Library Standard End User License Agreement, Read the PD4ML Java Library Pro End User License Agreement, Read the PD4ML Java Library Volume License End User License Agreement, Read the PD4ML Java Library Source Code License End User License Agreement
Operating System for Deployment: Windows Vista, Windows XP, Windows Server 2003, Sun Solaris 10, SUSE Linux 10.x, Mac OS X
Architecture of Product: 16Bit, 32Bit, MAC
Product Type: Component, Add-In
Component Type: Java Servlet, Java Class, JavaServer Faces (JSF)
Built Using: Java 2 SDK (JDK 1.4), Java 2 SDK (JDK 1.3)
Application Servers: Adobe JRun 4.0, Adobe JRun 3.0, Apache JServ, Apple WebObjects, Oracle WebLogic Server 10.0, Oracle WebLogic Server 9.0 (formerly BEA), Oracle WebLogic Server 8.1 (formerly BEA), IBM WebSphere (TM) Application Server 5.0, iPlanet Application Server, Oracle Application Server 10g, Oracle Application Server 9i, Jakarta Tomcat
Compatible Containers: Microsoft Internet Explorer 7.0, Microsoft Internet Explorer 6.0, Microsoft Internet Explorer 5.5, JBuilder X, JBuilder 9, JBuilder 8, IBM VisualAge for Java 4, WebLogic Portal, Eclipse V3.3, Eclipse V3.1.2, Eclipse V3.0
Keywords: PD4ML PDF HTML conversion converting java converts convert
zefer|org zefer PDF4ML
Conversion Convert converts converting