### 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 pd4fonts.properties or broken references in pd4fonts.properties 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 pd4fonts.properties - 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 3.6.0.0 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: pd4fonts.properties 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 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 Fixed bugs: - 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> 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 3.5.15.1 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 pd4ml.document.date) 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 pd4fonts.properties 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 API method fitPageVertically() forces PD4ML to put entire HTML content to a single PDF page New API method protectPhysicalUnitDimensions() makes PD4ML to output PDF objects respecting dimensions/font sizes given in "in", "pt", "cm" etc. (WARNING: the mode can cause broken layout; see the documentation) <pd4ml:page.break> can be conditional with the new attribute "ifSpaceBelowLessThan" Fixed bugs: - JDK1.3: corrupted PDF output if image width or height is explicitly set to "0" #### 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 #### Feedback 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) #### Sales For PD4ML sales or licensing questions, please email us at: