HTML to PDF converter for Java and .NET


PD4ML Java 3.11.5 / PD4ML .NET 3.8.5b1 Release Notes

For PD4ML v4 Release Notes follow the link

Release Date: Dec.  14, 2021

New in PD4ML Pro 3.11.5

  • New API method enableLigatures() and the processing logic of complex scripts behind it

New in PD4ML Pro 3.11.4fx5-7

  • Better handling of mixed RTL and LTR texts
  • Fixed bugs:
            - Unexpected gaps between normal and decorated (i.e. underlined) text portions if built-in core fonts used
            - PDF Merge minor bugfix

New in PD4ML Pro 3.11.4fx4

  • Font size accuracy in "protect physical unit dimensions" mode
  • Table centering issues in adjustHtmlWidth mode
  • <base href> takes no effect when converted with PD4ML Taglib
  • PDF Parser bugfixes

    New in PD4ML Pro 3.11.4fx1-3

    • Minor bugfixes

    New in PD4ML Pro 3.11.3

    • HTML parser improvements: processing or special characters
  • Minor bugfixes

    New in PD4ML Pro 3.11.2

    • JDK1.7 dependency removed. PD4ML v3 is compatible with JDK 1.3+ again.
    • Performance optimization of base64-encoded attachments embedding
    • RTF output: multiple refinements of the table rendering logic

    New in PD4ML Pro 3.11.1

    • background-size CSS property support
    • HTML parser improvements: better interpreting of corrupted HTML code

    New in PD4ML Pro 3.11.0

    • New API method pd4ml.applyKerning(boolean) and corresponding Pd4Cmd command-line parameter
    • Updated built-in Type1 font metrics
    • Text output with Type1 fonts refactored
    • Bulky RTF output performance optimization

    New in PD4ML Pro 3.10.9fx4

    • Fixed bugs:
              - RTF output: rowspanned empty table cells may corrupt RTF document integrity
              - Exception by merging of PDFs exported from Crystal Reports

    New in PD4ML Pro 3.10.9fx3

    • RTF output: support of RTL (Arabic, Hebrew) lists.
    • Cedilla diacritic glyphs support for not Unicode3.0-compliant font "Arial Unicode MS".
    • Fixed bugs:
              - RTF output: wrongly positioned list item bullets and numbers, if the item is a block or table element

    New in PD4ML Pro 3.10.9fx2

    • OpenJDK 11 incompatibility (bug?) workaround
    • Explicit page break CSS directive takes precedence over "page-break-inside: avoid"

    New in PD4ML Pro 3.10.9fx1

    • Default TTF font (if specified and exists) takes precedence over built-in Type1 PDF viewer fonts

    New in PD4ML Pro 3.10.9

    • Support of surrogate pairs (UTF32) in TTF fonts refactored (and bugfixed)
    • For backward PD4ML version compatibility the default font face changed back to Arial
    • Fixed bugs:
              - Severe: Occasional deadlocks in multi-threading environment
              - Erroneous content width calculation in adjustHtmlWidth rendering mode
              - minor issues

    New in PD4ML Pro 3.10.8

    • Support of percent values for left and right margins
    • bottom-top text orientation support with writing-mode: vertical-lr; transform: rotate(-180deg);
    • Arial Unicode MS is defined as the "last resort" fallback TTF font name, for cases when no other configured font can render a document content.
    • Fixed bugs:
              - Wrong alignment of list bullets in RTL (Arabic, Hebrew) documents
              - Internal RTF document hyperlinks does not work in special cases
              - Leading asterisk in CSS property name is not supported by the CSS parser
              - minor issues

    New in PD4ML Pro 3.10.7

    • Support of gzipped HTTPS added
    • JDK10 compatibility
    • Fixed bugs:
              - An appearance of Textarea in the source document may corrupt resulting PDF file format integrity (not reset clipping area)
              - minor issues

    New in PD4ML Pro 3.10.6

    • Support of padding for IMG elements
    • Support of padding/margins for LI elements
    • Fixed bugs:
              - SEVERE: occasional losing of the very first or the last text line on a PDF page (under special conditions)
              - minor issues

    New in PD4ML Pro 3.10.5

    • Support CMYK JPEG images (incl. invert mode)
    • Owner password generation logic refined (for encrypted PDFs)
    • Fixed bugs:
              - occasional problems with an embedding of image resources from WebApp context
              - ordered/unordered list rendering issues in RTF
              - minor issues

    New in PD4ML Pro 3.10.4

    • Support of negative margins
    • Support of abs/rel positioning offsets given in percents
    • RTF line spacing property support
    • RTF text paragraph padding/borders support
    • RTF blank paragraph suppression
    • Fixed bugs:
              - Incorrect base value for relative width/height calculations of absolute positioned elements
              - minor issues

    New in PD4ML Pro 3.10.3

    • Fixed bugs:
              - Block margins can be wrongly computed by RTF output.
              - text-align: center style is not always correctly reset and may impact a content that follows (by RTF output).
              - Case sensitivity of link anchor names may cause not working internal PDF document hyperlinks.
              - &lt;br char sequence may result a conversion failure
              - minor issues

    New in PD4ML Pro 3.10.2

    • Proprietary CSS style "list-style-type: dash" added by a customer request
    • Fixed bugs:
              - Some types of MIME content of Notes emails are not converted to PDF
              - IO exceptions (i.e. TCP/IP connection is interrupted) not always propagated to the top PD4ML API level
              - Invalid handling of CSS style "font-family: inherit"
              - Translucent parts of PNG images appear as black by RTF output
              - minor issues

    New in PD4ML Pro 3.10.1

    • "Smart table break" support by RTF output
    • CSS style "white-space: pre-line" support
    • Fixed bugs:
              - form input element ID attribute value is not used used as name, when NAME attribute is missing
              - URL escape sequences (i.e. %20) in base64-encoded data cause decoding error
              - Nested lists (or block elements used as list items) may result corrupted layout by  RTF output.
              - occasional RTF line spacing issues
              - multiple minor issues

    New in PD4ML Pro 3.10.0

    • HTML normalizer module is significantly refactored for a better handling of HTML syntax errors
    • Improved layouting logic of absolute positioned elements
    • Updates in DXL-to-PDF converter stylesheet
    • Fixed bugs:
              - possible uneven space distribution in justified text blocks
              - wrong ordered list item numbering, when number of items exceeds Latin alphabet
              - possible errors by resolving of relative URLs in CSS stylesheets
              - wrong handling of percent and relative widths of input and text area elements

    New in PD4ML Pro 3.9.9fx2

    • Fixed bugs:
              - display:block or float:left|right CSS styles applied to non-block elements may cause rendering flaws
              - special proprietary java: URL protocol does not work for document watermarking
              - hierarchy inconsistencies of <h1>-<h6> tags may cause errors in PDF bookmarks generation
              - PD4Browser failed to lookup a default PDF viewer application on some platforms
              - HTML normalizer refinements; more tolerance to severe HTML syntax errors
              - minor issues

    New in PD4ML Pro 3.9.9fx1

    • A workaround to provide minimal table <caption> support
    • Fixed bugs:
              - Incompatibility issue with some print drivers (SEVERE)
              - Strict PDF/A format validation may fail because of date format (the issue only reproducible in UTC timezone)
              - Erroneous copy-paste of UTF32 glyphs in PDF viewer application; a variety of UTF32 support refinements.
              - Protocol prefix "file://" (only two splashes, which is, in fact, an incorrect syntax) is wrongly interpreted
              - Taglib: pageBackgroundColor and pageBackgroundImageUrl attributes take no effect when no watermark image defined
              - minor HTML normalizer refinements
              - multiple minor issues

    New in PD4ML Pro 3.9.9

    • Support of display: block and float: left/right applied to <span>, <font> and some other non-block elements
    • Support of text decorations in RTF (underline, strikethru).
    • Fixed bugs:
              - U+200B is shown is rendered incorrectly by JDK1.8
              - Invalid appearance of some national characters in bookmark titles.
              - Wrong space allocation for em-dash character (by TTF embedding is off)
              - pncorr attribute of <pd4ml:toc> takes no effect
              - a sequence of blank pages (page break tags) in a middle of a PDF may corrupt TOC numbering
              - multiple minor issues

    New in PD4ML Pro 3.9.8fx5

    • HTML normalizer improvements, to handle <table> structure/syntax errors.
    • Basic UTF-32 support added (requires capable TTF fonts)
    • Fixed bugs:
              - occasional top-left table cell content corruption by a table break (in "smarttablebreak" mode).
              - rgba() color definition error fixed.
              - multiple minor issues

    New in PD4ML Pro 3.9.8fx4

    • A workaround to prevent JVM to create multiple temp font files (further improvements)
    • PDF/A meta data integrity check by a document merge
    • Fixed bugs:
              - empty named anchors <a name="destination"/> are not treated as a valid destination
              - entities in input element values are not resolved (<input ... value="M&uuml;nchen">)
              - multiple minor issues

    New in PD4ML Pro 3.9.8fx3

    • HTTP/HTTPS timeout control with PD4Constants.PD4ML_SOCKET_TIMEOUT setting
    • PD4Browser minor improvements (UI, Acroread lookup logic etc )
    • Refactored text positioning logic for a case an explicitly defined line height is significantly greater than current font size
    • Auto-definition of an attachment file extension by a base64 MIME type (when "description" attribute is not properly set)
    • Fixed bugs:
              - HTML normalization flaws by processing of an invalid chain multiple closing tags (i.e. </table></table></table>)
              - invalid table row height calculation if it consists of empty cells (<td></td>)
              - minor issues

    New in PD4ML Pro 3.9.8fx2

    • A workaround to prevent JVM to create multiple temp font files
    • HTML normalizer improvements
    • Suppressing of blank PDF pages, may appear as a clash of multiple page break directives
    • Fixed bugs:
              - multiple minor issues

    New in PD4ML Pro 3.9.8fx1

    • Fixed bugs:
              - !import CSS directive may occasionally take no effect
              - incorrect handling of negative margin values
              - overflow: hidden applied to a multi-page block element may cause to lose a text line by a page break.
              - @import CSS directive, without an explicit media given, is ignored
              - relative CSS paths are resolved using as a base a document URL instead of a styleheet file URL.

    New in PD4ML Pro 3.9.8

    • Basic support for <iframe> tag
    • Fixed bugs:
              - occasional repeating of table border after a page break (by border width > 1)
              - placeholders $[var] not substituted in HTML headers/footers

    New in PD4ML Pro 3.9.8b2

    • Improved CSS syntax error tolerance
    • Special placeholders $[page] and $[total] can be substituted with <pd4ml:include> constructs.
    • :not() and :matches() CSS pseudo classes supported
    • Fixed bugs:
              - occasional NPE by a parsing of corrupted CSS
              - occasional encryption data integrity error by PDF password protection

    New in PD4ML Pro 3.9.8b1

    • The version is based on a proprietary CSS parser / cascading engine. There is no need in open-source ss_css2.jar anymore.
    • General sibling CSS selectors (E ~ F) supported
    • :nth-child, :nth-of-type, :first-of-type pseudo classes supported

    New in PD4ML Pro 3.9.7

    • <pd4ml:include> tag support for an inclusion of external resources, dynamic values, dynamic HTML portions
    • support of BMP images with 32bit color
    • more file format error tolerance of PD4ML's PDF parser
    • Fixed bugs:
              - occasional XML metadata inconsistence by PDF/A generation
              - multiple footnotes may appear in wrong order
              - explicit page breaks may cause floating elements to repeat on next page
              - empty <p> tag causes table cells to allocate too much horizontal space 

    New in PD4ML Pro 3.9.6

    • New PD4Document.overlay() and PD4Document.underlay() API metods combine PDF page layouts of two documents. That makes possible to implement an intelligent watermarking logic, to add logos, headers or footers to an existent PDF.
    • font-variant: small-caps CSS style support added
    • multiline dynamic values supported (with HTML-like syntax: "line 1<br>line 2...")
    • Fixed bugs:
              - text-transform CSS style applied before dynamic value placeholders are substituted. The transformation may impact placeholders and cause a substitution failure.
              - min-height may override height CSS property
              - pd4ml.clearCache() does not cleas CSS style cache

    New in PD4ML Pro 3.9.5

    • Footnotes rendering logic refactored
    • DXL->HTML conversion XSL stylesheet respects table width and margins now
    • Fixed bugs:
              - error in CSS selector class match logic
              - pd4ml.addMetadata() optimized for not-Latin scripts
              - RTF list bullets may appear inconsistent (invalid fonts applied)
              - EURO symbol (and few others) appears as '?' when TTF embedding is not enabled.
              - explicit line breaks not always take effect in RTF
              - minor SVG conversion issues

    New in PD4ML Pro 3.9.4

    • New API method addMetadata() for PD4ML DMS and PD4ML SRC license binaries
    • min-height CSS property support by <DIV> and <TABLE> tags
    • PDF merge logic optimization
    • Fixed bugs:
              - pd4ml.adjustHtmlWidth() takes no effect by a conversion to RTF (reoccuring)
              - occasional PDF merge errors in multi-threaded scenarios
              - pd4ml.getLastRenderInfo(PD4ML_RIGHT_EDGE_PX) returns 0 after an HTML-to-RTF conversion
              - minor SVG conversion issues

    New in PD4ML Pro 3.9.3

    • Command line converter tool Pd4Cmd supports features of PD4Document (PDF read/write/merge) now.
    • Fixed bugs:
              - pd4ml.adjustHtmlWidth() takes no effect by a conversion to RTF
              - caching logic refinements
              - multiple minor issues

    New in PD4ML Pro 3.9.2

    • Improved PDF syntax error tolerance of PDF parse/merge module (PD4Document)
    • Fixed bugs:
              - <pd4ml:transform enable="false"> may cause IOException (OutputStream already open).
              - <pd4ml:toc> tag appearance suppresses a generation of footnotes (if any defined)
              - multiple minor issues

    New in PD4ML Pro 3.9.1

    • Refactored PDF parse/merge module (PD4Document)
    • deletePage() method in PD4Document class
    • from/to parameters of PD4ML.merge() work again
    • New -ttfrefsonly parameter of PD4Cmd (do not embed TTFs, just reference them)
    • Fixed bugs:
              - max-width CSS property with percentual value may cause an image not to appear in the resulting PDF
              - minor issues

    New in PD4ML Pro 3.9.0

    • HTML parser syntax error-tolerance improvements
    • style attribute of <svg> tag support
    • rgba() color format support in SVG
    • Improved CSS runtime performance
    • Fixed bugs:
              - minor issues

    New in PD4ML Pro 3.9.0b3

    • Support of clip paths in SVG
    • Totally refactored PDF parser/writer module. The parser now supports more PDF file format species.
    • PD4Document class: new PDF manipulation/analyze/update API.  Makes possible to read/update document metadata, read document info (number of pages, permissions), merge PDF documents.
    • Fixed bugs:
              - inherits recent bugfixes of v385fx*

    New in PD4ML Pro 3.8.5fx8

    • Fixed bugs:
              - v385fx7 distribution package inconsistence. Impacts a generation of PDFs with non-TTF fonts.

    New in PD4ML Pro 3.8.5fx7

    • HTML parser module minor improvements (more tolerance to table structure syntax errors/inconsistencies)
    • PD4ML_ENABLE_HTTP_ERRORS switch enables a propagation of document loading errors (like HTTP 404) to PD4ML API level
    • Fixed bugs:
              - Occasional wrong interpretation of UTF-8 BOM bytes
              - CJK characters in HREF attribute of <a> attribute may cause a document corruption
              - minor issues

    New in PD4ML Pro 3.9.0b2

    • New proprietary <pd4ml:bookmark> tag to define PDF outline structure
    • Support of URL patterns to omit particular CSS stylesheet loading
    • TOC page number placeholder can be extended to more than 3 characters (<pd4ml:toc numlen="4">) for extra big documents.
    • More diagnostics/debug info: resource loading latency and CSS stylesheet parsing duration
    • Fixed bugs:
              - quotation marks in attribute values may corrupt HTML tag structure
              - PD4ML SRC distribution integrity
              - minor issues

    New in PD4ML Pro 3.8.5fx6

    • Lotus Notes DXL->PDF conversion improvements
    • Maximal content scale is limited by reasonable grades in adjustHtmlWidth mode
    • Fixed bugs:
              - Severe(!) footer/header height calculation error (since v385fx5)
              - minor issues

    New in PD4ML Pro 3.8.5fx5

    • HTML parser module improvements (more tolerance to table structure syntax errors/inconsistencies)
    • RTF page format control
    • Lotus Notes DXL converter improvements (refined MIME email messages conversion logic)
    • Fixed bugs:
              - PDF forms: character encoding issue
              - page-break-inside: avoid takes effect not for all block elements types (i.e. <div>)
              - nowrap table cell mode is not propagated to nested block elements
              - minor issues

    New in PD4ML Pro 3.8.5fx4

    • Support of nested ordered and unordered lists by DXL conversion
    • More support for MIME atatchments by DXL conversion
    • New -watermark parameter by Pd4Cmd
    • Fixed bugs:
              - PDF forms: third-party software compatibility issues
              - SVG rendering issues
              - SVG renderer compatinbility issues with IBM JDK / xercesImpl-2.XX.jar
              - minor issues

    New in PD4ML Pro .NET 3.8.5b1

    • Matches the actual state / functionality of PD4ML Java (v385fx3)
    • Implements SVG support
    • Improves HTML/CSS rendering
    • Improves PDF and RTF output

    New in PD4ML Pro 3.8.5fx3

    • Tiled image backrounds are converted to PDF patterns now. Solves occasional visual apearance problems and eliminates "10000 tiles" technical limitation.
    • Refined text line breaking logic
    • max-width, max-height CSS properties support for IMG tag
    • Fixed bugs:
              - CSS selectors with the same weight may be applied with wrong precedence (in rare cases)
              - Inline defined headers/footers may be applied to wrong pages (in rare cases)
              - '#' character in a local path (file: protocol) makes a referenced resource loading fail
              - minor issues

    New in PD4ML Pro 3.8.5fx2

    • Support of lists (<ol>, <ul>) by RTF output
    • SVG renderer improvements
    • Fixed bugs:
              - (!) an appearance of some special characters in HTML may cause RTF file errors (reoccurring)
              - OpenOffice RTF compatibility issues
              - minor issues

    New in PD4ML Pro 3.8.5fx1

    • Support of Lotus Notes MIME messages and inline images.
    • Optional Lotus Notes DXL date locale-specific formatting
    • Fixed bugs:
              - (!) an appearance of some special characters in HTML may cause RTF file errors
              - occasional image/stylesheet loading error when its URI has a space character
              - minor issues

    New in PD4ML Pro 3.8.5

    • Table border color support by RTF output
    • Fixed bugs:
              - minor RTF output issues
              - minor SVG conversion issues

    New in PD4ML Pro 3.8.5b9

    • RTL scripting improvements by RTF output
    • Fixed bugs:
              - a definition of a text-only header or footer may cause blank page output
              - an occasional ignoring of font styles by RTF output
              - minor issues and improvements

    New in PD4ML Pro 3.8.5b8

    • native SVG graphics support
    • support of an overriding of PD4ML conversion properties from .INI file
    • Fixed bugs:
              - "background-color: transparent" does not work correctly under some conditions
              - generated RTF is not fully compatible with OpenOffice
              - PDF bookmarks are not generated, when root level headings (<H1>) are missing in src HTML.
              - byte order mark (BOM) may visually appear in a generated PDF
              - minor issues and improvements

    New in PD4ML Pro 3.8.1fx2

    • Fixed bugs:
              - occasional bookmark generation errors
              - "overflow: hidden" may conflict with page break directives (i.e. <pd4ml:page.break>)
              - minor issues

    New in PD4ML Pro 3.8.1fx1

    • Style support of <THEAD> and <TBODY> tags
    • "white-space: pre-wrap" CSS property support
    • Fixed bugs:
              - "overflow: hidden" style may cause a blank page in some conditions

    New in PD4ML Pro 3.8.1

    • Fixed bugs:
              - minor issues

    New in PD4ML Pro 3.8.0fx9

    • Fixed bugs:
              - a variety of DXL-to-PDF conversion problems
              - minor issues

    New in PD4ML Pro 3.8.0fx8

    • Fixed bugs:
              - Arabic word wrap errors
              - possible lost space char between RTL text sections
              - possible garbage in non-Latin PDF attachment names
              - base64-encoded data rendering issues (Lotus Notes scenarios-relevant)
              - wrongly interpreted "background-color: transparent"
              - minor issues

    New in PD4ML Pro 3.8.0fx7

    • 'ex' units support
    • Fixed bugs:
              - inactive progress monitor by converting of multiple StringReader object contents
              - servlet context resource loading improvements
              - header/footer area height calculation errors by dynamic page format changes 
              - minor issues

    New in PD4ML Pro 3.8.0fx6

    • Fixed bugs:
              - wrong path to or broken references in can cause PDF layout defects
              - not disabled line breaks after dots and comas in numeric data
              - lost whitespace issue (special cases) 
              - refined <td nowrap>  behavior
              - path errors in build.xml of PD4ML Source Code distribution

    New in PD4ML Pro 3.8.0fx5

    • Fixed bugs:
              - blank options of <select> ignored
              - overflow: hidden style in footer corrupts footer representation
              - undesired caching of stylesheets
              - gzipped HTTP fails
              - lost whitespaces around <span>
              - <pre> cuts first space char (if any)
              - <meta name="description"> may result inconsistent PDF/A meta

    New in PD4ML Pro 3.8.0fx4

    • Compressed multipage TIFF output mode.
    • Fixed bugs:
              - Minor bugs.

    New in PD4ML Pro 3.8.0fx3

    • An API method to define Acrobat JavaScript event handlers
    • RTF: local hyperlinking (bookmarks) support
    • absolute element positioning improvements:
              - right, bottom CSS properties supported
              - refined margin-border-padding processing for absolutely positioned elements
    • Fixed bugs:
              - (!!!) images are not compressed under some conditions, which makes PDF files to grow. The issue has been introduced in one of the recent versions.
              - double class selector rules (.class1.class2) incorrectly processed.
              - Pd4Cmd does not allow to output RTF
              - Bold/Italic TTF emulation not always work for CJK

    New in PD4ML Pro 3.8.0fx2

    • RTF output improvements:
              - text & paragraph background color support
              - page insets control
              - paragraph margins control
              - header/footer for title page
              - page breaks optimization
              - white space/ blank lines optimization
    • Fixed bugs:
              - error in TTF font substitution rules
              - BMP parsing issue
              - wrongly calculated text ascent cuts upper text elements by page break


    New in PD4ML Pro 3.8.0

    • conversion progress monitoring API
    • improved HTML error tolerance (now it can correctly process <<tag>, <tag attr="val""> etc)
    • watermark images are loaded via common resource cache now.
    • RTF output improvements:
              - table/table cell background color support
              - table height support
              - TABLE {page-break-inside:avoid} style support
              - RTL text support

    New in PD4ML Pro 3.8.0b1

    • display: inline-block CSS style support
    • refactored table break logic; correct table background rendering.
    • memory usage optimization by PDF attachment embedding
    • Fixed bugs:
              - explicit page breaks take no effect by RTF generation
              - slash-separated numbers in RTL text erroneously change direction of the number groups
              - undesired 1px footer right margin
              - no way to combine underline and line-through CSS style. overline is not supported.
              - <font> tag does not allow to define text background
              - underline is broken by text-align: justify
              - undesired 1px footer right margin
              - minor issues

    New in PD4ML Pro 3.7.1b9

    • PDF merge feature / API
    • Fixed bugs:
              - RTL text: Ideographic Space (0x3000) is ignored under some conditions
              - avoid line breaks before closing brackets
              - CJK fonts can be not visible if HTML doc has no paragraphs or other markup
              - minor issues

    New in PD4ML Pro 3.7.1b4

    • HTML-to-Image conversion API
    • Fixed bugs:
              - RTL text: incorrect last line alignment by align="justify" 
              - dynamic page format change (or rotation) makes headers/footers width does not match actual page width
              - <pd4ml:page.break next="odd"> acts as <pd4ml:page.break next="even">
              - Whitespace supression is not optimal if whitespaces are deleimited by a style changer tag
              - minor issues

    New in PD4ML Pro 3.7.1b1

    • BMP images support
    • HTTP proxy definition for a single PD4ML instance (does not impact global JVM HTTP proxy settings)
    • text-indent CSS property implementation
    • RTL mode: table column order, lists, text indents etc
    • PNG-24 "as is" embedding
    • Fixed bugs:
              - dynamic page format change (for example, with <pd4ml:page.break pageFormat="rotate">) makes headers/footers not matching actual page width
              - background positions defined in percent values do not work
              - invalid appearance of font.dir.location in
              - setPermissions() defines "PDF owner password"; must be "PDF user password"
              - Not optimal TTF fonts memory usage
              - footnote definition interferes with absolute positioned document layouts
              - smartTableSplit mode does not work in PD4ML Std

    New in PD4ML Pro 3.7.0fx2

    • initial page number command-line parameter for Pd4Cmd
    • headers/footers support by RTF output
    • <canvas> delegation API
    • Fixed bugs:
              - occasional mbtPdfAsm.exe (a third-party tool) crashes by operations with generated PDFs

    New in PD4ML Pro 3.7.0fx1

    • Fixed bugs:
              - Complex document layouts with multiple levels of nested tables may cause invalid RTF output
              - TABLE{ page-break-inside: avoid } CSS style may result blank footers
              - PD4ML_MEDIA_TYPE_PRINT property does not respect media types defined in external stylesheets
              - Invalid interpretation of semicolons in URL
              - Pd4Cmd command-line utility has no switch to produce RTF
              - Minor issues.      

    New in PD4ML Pro 3.7.0

    • render(StringReader[], ...) API call
    • <input> element horizontal value alignment
    • Fixed bugs:
              - "page-break-before: always" applied to <h1>-<h6> confuses table of contents references
              - horizontal paddings, applied to <tr> cause invalid table background bounds
              - trailing blank page suppression logic does not change total page number value
              - tables in footer may conflict with "page-break-inside: avoid" CSS style.      

    New in PD4ML Pro 3.6.1b2

    • RTF file format output support
    • nth-child(even|odd) CSS selector support
    • JAR obfuscation changed to provide compatibility with Scala programming language
    • Dummy implementations of some HTML5 elements
    • enableTableBreaks() API call is renamed to enableSmartTableBreaks(). Table page break/replication of table headers code refactored.
    • API methods to reuse PD4ML cache
    • CSS Parser patched to potentially support CSS3 features.
    • Fixed bugs:
              - under particular conditions table cell background may shadow top cell border.      

    New in PD4ML Pro 3.6.1b1

    • Generic support of embeddable TIFF files (CCITTFax group 4)
    • A configuration switch to support "print" CSS media type (in addition to or instead of default "screen" type).
    • Optional image caching in local $TEMP directory.
    • Fixed bugs:
              - a possibility of commas and other punctuation to be "line-wrapped" separately from its leading word.
              - under particular conditions table cell background may shadow top cell border.      

    New in PD4ML Pro 3.6.0fx1

    • Fixed bugs:
              - &#151; entity wrongly interpreted when TTF embedding is switched off
              - not closed <head> 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
    • &shy; entity support
    • Fixed bugs:
              - By multi-document conversion some documents may loose HTML background 
              - "overflow: hidden"  does not work for <textarea>
              - Minor refinements  

    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
    • Fixed bugs:
              - <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> is not overriddable with CSS.  

    New in PD4ML Pro

    • Pd4Cmd command-line HTML-to-PDF converter
    • Fixed bugs:
              - 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: generation API
    • Fixed bugs:
              - 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

    New in PD4ML Pro 3.6.0b1

    • PDF/A support (PD4ML Volume DMS Edition)
    • <pd4ml:toc> can be inserted at any place of the document now.
    • <pd4ml:page.break> allows to control document page numbering and to insert an extra blank page to guarantee the next page is even or odd
    • Fixed bugs:
              - 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 Pro

    • Fixed bugs:
              - few minor issues

    New in PD4ML Pro 3.5.1b17

    • getLastRenderInfo() API call
    • a possibility to automatically open a print dialog
    • Fixed bugs:
              - second parameter of useTTF() takes no effect
              - "font-size: inherit" does not work correctly
              - <noscript> renders as block element
              - watermarks opacity is not controllable (introduced in v351b1)
              - page background may overlap page content (introduced in v351b8)
              - <br clear="all"> does not clear
              - <br> at the end of <li> block does not break line

    New in PD4ML Pro 3.5.1b14

    • not-well-formed-HTML pre-processing improvements
    • PDF version of generated documents is set to "1.5" to fix incompatibility issues with PDF-processing modern software
    • Fixed bugs:
              - System.setProperty("pd4ml.cache.enable","false"); does not work
              - conflict of "overflow: hidden" and "vertical-align: middle"

    New in PD4ML Pro 3.5.1b8

    • Fixed bugs:
              - setHtmlHeader() call may make the main document content invisible in a case the header defines opaque background
              - <th> content is not centered by default
              - "border-style: double" takes no effect for table cells (in some contexts)

    New in PD4ML Pro 3.5.1b7

    • <col> tag support (only width attribute)
    • Proprietary tag <pd4ml:layoutbox> support (scaling of nested content down, until it fits given dimensions)
    • Proprietary tag <pd4ml:include> support (to include base64-encoded HTML documents)  
    • simplified "border-style: double" style support
    • Fixed bugs:
              - empty class="" attribute may break CSS selector lookups.
              - <center> tag fix from previous versions rolled back.

    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
    • Fixed bugs:
              - "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
    • Fixed bugs:
              - empty <a name="identifier"></a> anchors ignored

    New in PD4ML Pro 3.2.4

    • includes all the recent fixes of v323
    • multicolumn page layout
    • <fieldset> tag support.
    • Fixed bugs:
              - padding CSS property is not applied to <table>

    New in PD4ML Pro 3.2.3fx5

    • Fixed bugs:
              - the distribution includes corrupted version of ss_css2.jar
              - declaration errors in pd4ml.tld
              - invalid rendering of block element content if its height is given in percents and overflow: hidden style defined

    New in PD4ML Pro 3.2.3fx4

    • ss_css2.jar is now a part of PD4ML distribution; no extra downloads needed anymore.
    • Some PD4ML "fine-tuning" env switches (pd4ml.sessionid.append, pd4ml.cache.enable and can be passed via setDynamicParams(Map dynamicParams) API call in order to impact only particular PDF generation process.
    • Fixed bugs:
              - <pd4ml:page.break> is ignored if placed between table rows
              - PDF documents now shown in MS IE if the documents downloaded by SSL (solved with "Cache-control: private" HTTP header directive in PD4ML JSP taglib)
              - pd4toc="nopagenum" proprietary attribute of <H1>-<H6> not always correctly processed by TOC generator
              - minor improvements


    New in PD4ML Pro 3.2.3fx1

    • Fixed bugs:
              - Occasional errors by interpretation of <pd4ml:page.header> and <pd4ml:page.footer>


    New in PD4ML Pro 3.2.3

    • HTTP proxy is defined via http.proxyServer and http.proxyPort environment variables instead of deprecated proxyServer and proxyPort
    • Fixed bugs:
              - new line character is not interpreted as a white space (introduced in v323b8)


    New in PD4ML Pro 3.2.3b8

    • minor memory footprint optimization
    • changes in the HTML normalizer module
    • Fixed bugs:
              - occasional ClassCastException by rendering of nested tables.
              - layouting problem with floats, whose width is set to 100%


    New in PD4ML Pro 3.2.3b4

    • multi-row table headers can be replicated from page to page if the table is splitted
    • named background image positions (bottom, etc)
    • refined formatting of <pre> sections
    • support of "word-wrap: break-word" CSS property to allow auto line breaks in preformatted text
    • styles like H6, H5 { pd4ml-bookmark-visibility: hidden } allow to exclude particular entries from the PDF bookmark list
    • Fixed bugs:
              - vertical margins of floats if they defined with 100% of width.
              - invalid scale of PDF page backgrounds
              - Default <body> style is "margin: 8px" now (instead of "padding: 8px")
              - occasional invalid scope attribute interpretation of <pd4ml:page.header>


    New in PD4ML Pro 3.2.3b2

    • <textarea> assumes wrap="soft" attribute value by default
    • floats positioning module completely refactored
    • refined "justify" text alignment algorithms
    • Fixed bugs:
              - <base href="..."> tag is ignored under particular conditions
              - cellpadding of <table> attribute does not work if table borders are set to collapse
              - missing of height or width attribute can cause image aspect ratio distortion

    New in PD4ML Pro 3.2.2

    • GUI HTML-to-PDF converting tool (PD4Browser) updated

    New in PD4ML Pro 3.2.2b5

    • memory footprint optimization
    • Fixed bugs:
              - small fractional widths like ".5pt" are interpreted as "0"
              - table column widths balancing can fails if there are block elements in the table cells (introduced in v322b4)

    New in PD4ML Pro 3.2.2b4

    • can point to remote font directory by font.dir.location property.
    • Fixed bugs:
              - line-height absolute values ignored
              - render() ignores character encoding of InputStreamReader
              - &apos; entity wrong interpretation
              - "display: none" property can affect neighbor components.

    New in PD4ML Pro 3.2.2b2

    • skiplast parameter for scope attribute of <pd4ml:page.header> and <pd4ml:page.footer>.
    • Fixed bugs:
              - scope attribute value parsing errors of <pd4ml:page.header> and <pd4ml:page.footer>
              - wrong (mirrored) rendering of headers and footers under special conditions.
              - align attrribute of <th> ignored.

    New in PD4ML Pro 3.2.2b1

    • Correct cell borders drawing after a table row wrapped to the next page.
    • Fixed bugs:
              - table-wide cellpadding overrides cell-specific paddingd if the table has border-collapse: collapse setting
              - invalid table height calculation if the table combines rows with rowspans and no content.
              - multiple minor issues

    New in PD4ML Pro 3.2.1

    • border-collapse CSS property support

    New in PD4ML Pro 3.2.1b4

    • CSS property support float: left and float: right for tables, images and DIVs.
    • Fixed bugs:
              - Minor text alignment issues

    New in PD4ML Pro 3.2.1b2

    • CSS property page-break-before: always and page-break-after: always supported by the main elements
    • Simplified RFC 2397 data source support for <pd4ml:attachment> tag.
    • Fixed bugs:
              - Invalid interpretation of complex CSS selectors like "TABLE.style1 > TR:first-child > TD"

    New in PD4ML Pro 3.2.1b1

    • CSS property word-wrap: break-word supported
    • Default vertical block margins calculation refined
    • Fixed bugs:
              - Invalid percentual font size calculations
              - Occasional invalid footer positioning on the first page
              - Occasional ignoring of <ol> numbering type properties
              - Minor issues

    New in PD4ML Pro 3.2.0

    • New servlet context resource loader allows to load images by absolute web application paths.
    • text-transform CSS property support
    • Fixed bugs:
              - Occasional table cell background and borders corruption after <pd4ml:page.break pageFormat="..."> tag
              - Actual PDF meta data format confuses some third-party PDF tools to count document pages
              - Invalid style application to <a> tag
              - jsessionid URL suffix is not understandable by some web servers

    New in PD4ML Pro 3.2.0b5

    • New attribute scope supported by <pd4ml:page.header> and <pd4ml:page.footer> tags.
    • <pd4ml:savefile> JSP custom tag allows to control redirect method with redirectMethod attribute (as "redirect" or "forward")

    New in PD4ML Pro 3.2.0b4

    • Supports dynamic placeholders ($[var]) substitution in HTML. pd4ml.setDynamicParams(Map) allows to define the dynamic data.
    • Allows to change PDF page format after page break with <pd4ml:page.break pageFormat="rotate"> or <pd4ml:page.break pageFormat="612x792">
    • Supports inline overridable page header/footer definitions in HTML: <pd4ml:page.header> ... </pd4ml:page.header> or <pd4ml:page.footer> ... </pd4ml:page.footer>
    • Fixed bugs:
              - PD4ML crashes if height attribute specified for HTML table with a single row
              - Suppresses a visual appearance of tags start with "<?".

    New in PD4ML Pro 3.2.0b2

    • Implements Mozilla's table column width balancing algorithm
    • Allows to define PDF page background colors and images
    • Fixed bugs:
              - performance degradation by conversion of huge preformatted blocks of text

    New in PD4ML Pro 3.1.0

    • Configurable icon types for PDF attachments

    New in PD4ML Pro 3.1.0b10

    • <meta> tag support.
    • Fixed bugs:
              - page-break-inside: avoid fails for nested tables
              - minor issues

    New in PD4ML Pro 3.1.0b7

    • Support for rules and frame attributes of <table>
    • PDF attachments are supported with new tag <pd4ml:attachment src="" description="">
    • Supported local links to block elements by ID. (In previous versions it was possible to address <a name="anchor"> only)
    • addStyle() API call allows to add extra stylesheets to be interpreted before or after CSS defined in <head> section of HTML.
    • Fixed bugs:
              - Table border / cell border conflict under some circumstances.
              - JDK1.6 minor compatibility issues

    New in PD4ML Pro 3.1.0b2

    • Word wrap in CJK scripts
    • Emulation of italic and bold font styles (if missing)
    • Fixed bugs:
              - ${title} substitution problem in headers and footers.
              - Hidden input elements affect page layout.

    New in PD4ML Pro 3.0.4 (maintenance release)

    • Partial RFC 2397 support
    • Fixed bugs:
              - Clipping area from one page can be propagated to the subsequent pages under some conditions. Result: occasional blank regions on the pages.
              - Invalid alignments of standalone input elements in table cells.

    New in PD4ML Pro 3.0.3

    • Fixed bugs:
              - Occasional content cut after htmlWidth change
              - Two <pd4ml:page.break> tags with no content in-between corrupt the last PDF page.

    New in PD4ML Pro 3.0.3b8

    New in PD4ML Pro 3.0.3b5

    • Support for dotted and dashed border styles.
    • The default TOC style changed.
    • Fixed bugs:
              - minor issues

    New in PD4ML Pro 3.0.3b2

    • New <pd4ml:toc> tag allows to generate table of contents (TOC) from HTML headings structure (<H1>-<H6>). The tag can be used in HTML and JSP.
    • Support for "page-break-inside: avoid" CSS directive for tables and table rows.

    New in PD4ML Pro 3.0.2

    • New API methods:
              - adjustHtmlWidth()
              - setCookie(name,value)
              - setDefaultTTFs(serif,sansserif,monospace)
    • Fixed bugs:
              - ClassCastException by SSL connections
              - minor issues

    New in PD4ML Pro 3.0.1

    • Fixed bugs:
              - NullPointerException after render(InputStreamReader,OutputStream) API call
              - minor issues in PNG embedding

    New in PD4ML Pro 3.0.0

    • Support for JDK 1.3
    • Fixed bugs:
              - PNG image embedding
              - Skip of table cell content if it is shorter as 2 characters (bug of PD4ML Pro 3.0.0b2)

    New in PD4ML Pro 3.0.0b2

    • Basic right-to-left scripts support added to the new renderer.
    • A bug with an ignoring of <pd4ml:page.break> under special conditions is fixed.
    • $[var] placeholder format is supported along with ${var}. It is done in order to avoid notation conflicts with the newest servlet APIs.
    • align="justify" accuracy refined.

    New in PD4ML Pro 3.0.0b1

    • It is a new generation of PD4ML tools based on a custom HTML rendering engine, which is tuned for an efficient and accurate HTML-to-PDF transformation. See the detailed description for more info.

    New in PD4ML 1.2.8 / Pro 2.1.4

    • New tag <pd4ml:savefile> allows to save generated PDFs on the server side. The tag can optionally forward current HTTP request to another JSP for PDF postprocessing or to the saved PDF file itself for direct downloads.
    • New tag <pd4ml:fix_base_path> allows on-a-fly to replace unsupported absolute resource paths (ie, "/folder/image.gif") with compatible ones ("../../folder/image.gif" or "http://myserver/folder/image.gif"). The feature solves some of compatibility issues with third-party graphics or chart JSP tag libraries, that outputs non-customizable image paths.
    • New attribute enable of <pd4ml:transform> enables or disables PDF transformation. The attribute helps to build "dual-purpose" JSPs: to be viewed as HTML or as PDF.

    New in PD4ML 1.2.6 / Pro 2.1.2

    • Fixed bugs:
              - Occasional HTML header/footer output skip. (re)
              - Monochrome JPEG embedding problem.
              - Minor bugfixing and code optimization.

    • Known issues:
              - second parameter of useTTF(String pathToFontDirs, boolean embed) has no effect

    New in PD4ML 1.2.5 / Pro 2.1.0

    • Fixed bugs:
              - Occasional ignoring of useAFM attribute value.

    • Known issues:
              - second parameter of useTTF(String pathToFontDirs, boolean embed) has no effect

    New in PD4ML Pro 2.1.0b3

    • New utility tag <pd4ml:clean_xhtml> replaces all occurrences of '/>' with '>' in order to make JSP output PD4ML-friendly.
    • Fixed bugs:
              - JDK's fontmanager.dll bug workaround.
              - Incorrect cache control for dynamic images.
              - Occasional PDF file format corruption if default file.encoding=UTF-8.

    • Known issues:
              - second parameter of useTTF(String pathToFontDirs, boolean embed) has no effect

    New in PD4ML Pro 2.1.0b

    • Watermark images support.
    • Fixed bugs:
              - Occasional header/footer output skip.
              - Undesired character encoding conversions in PD4ML taglib.
              - Default 3D table borders optically refined.

    • Known issues:
              - second parameter of useTTF(String pathToFontDirs, boolean embed) has no effect

    New in PD4ML Pro 2.0.0

    • Page headers and footers can be defined in HTML format (including image references).
    • TTF font directories can be addressed by URLs
    • A special URL protocol "java:" allows to load TTF fonts from classpath locations (including JARs).
    • Scaling of table background images supported.
    • Fixed bugs:
              - workaround for Adobe Acrobat Reader 7 image transparency interpretation error.

    • Known issues:
              - second parameter of useTTF(String pathToFontDirs, boolean embed) has no effect

    New in PD4ML Pro 2.0.0b

    • TTF Font embedding support
    • Support for national character sets (with some exceptions)

    New in PD4ML 1.2.5b1

    • Starting with the version PD4ML Standard, Web and Professional source code branches have been merged. See release notes for PD4ML Pro 2.1.0b3.

    New in PD4ML 1.2.4

    • Fixed bugs:
              - Default 3D table borders optically refined.
              - workaround for Adobe Acrobat Reader 7 image transparency interpretation error.

    New in PD4ML 1.2.2

    • Optimizes outlines tree structure.
    • Fixed bugs:
              - Header/footer font definition problem.
              - Minor bugfixing and code optimization.

    New in PD4ML 1.2.0

    • Fixed bugs:
              - HTTPS delivery problems to some versions of MS Internet Explorer.

    New in PD4ML 1.2.0b2

    • Font face and style control for headers and footers.
    • Fixed bugs:
              - Invalid text alignment in graphical representations of form elements.
              - Invalid dash character glyph width in font metrics.
              - ServletResponse.resetBuffer() is replaced with ServletResponse.reset() in the taglib for compatibility with older servlet engines.

    New in PD4ML 1.2.0b

    • PDF document navigation. PDF outlines (bookmarks) generation mechanism added. Now it is possible to convert to outlines a list of named anchors (<a name="anchor_id">label</a>) or a headings structure (<h1>...<h6>).
    • Transforming of HTML hyperlinks to PDF hyperlinks (if not explicitely disabled). Hyperlink jumps within the same document are supported as well.
    • Multiline header/footer support.
    • Opaque PNG images are embedded to resulting PDFs "as is".
    • Debug switch method added to localize image path / document base problems.
    • Fixed bugs:
              - Image path problems in PD4ML taglib.

    New in PD4ML 1.1.0

    • JPEG images are embedded to resulting PDFs "as is". In most of cases it reduces the documents size.
    • Fixed bugs:
              - Incorrect default page fonts if Acrobat Reader's font metrics are used.
              - Invalid representation of <LI type=DISC> and <LI type=CIRCLE> in PDF

    New in PD4ML 1.1.0b3

    • Significant performance improvement for multipage PDF document generation.
    • Jrun4 / ColdFusion 6.1 compatibility.
    • Fixed bugs:
              - Occasional ignoring of header/footer settings.
              - Loosing of page content under particular conditions.

    New in PD4ML 1.1.0b

    • Encryption and permission control added.
    • Added rendering possibility using Acrobat Reader's font metrics instead of the ones offered by Java. That makes PDF rendering more accurate if HTML layout consists of long text strings.
    • Struts compatibility workaround implemented.
    • New JSP custom tag <pd4ml:permissions> added in order to reflect PD4ML API changes.
    • "Umlauts + Russian locale" issue solved.

    New in PD4ML 1.0.5

    • ${total} placeholder is replaced correctly with total number of pages in page header or footer.
    • Header and footer dialog option panels are unlocked in PD4ML Browser / Converter.
    • Some minor rendering refinements

    New in PD4ML 1.0.5b

    • Customizable PDF page header and footer support included.
    • PD4ML API allows now to control PDF document properties: document title (allows to override default value taken from HTML document title), document author.
    • interpolate images option is available.
    • New JSP custom tags <pd4ml:header> and <pd4ml:footer> added.
    • JSP custom tag <pd4ml:transform> reflects to the recent PD4ML API changes.
    • Table cell background image bug fixed.

    New in PD4ML 1.0.4

    PD4ML 1.0.4 is a maintenance release to fix bugs found in release 1.0.2 and 1.0.3

    • PD4ML-specific <pd4ml:page.break> tag added (supported in JSP as well as in HTML context)
    • JSP Custom tag libraries support added
    • Fixes problem with resource sharing in multithread environment
    • Other minor bugfixes


    You can get support by mailing the PD4ML Team directly. Its easier for us to help you if you include the following information in your post:
      Java Runtime version
      PD4ML version
      Operating system
      Hosting app server (if any)
      Source HTML that causes problems
      Java Exception stack trace (if any)
      Generated PDF file (if can not be shown by PDF Viewer application)


    For PD4ML sales or licensing questions, please email us at:

  • Copyright ©2004-24 zefer|org. All rights reserved. Bookmark and Share