Release of XMLmind XSL-FO Converter v6.0

October 29, 2018

Submitted by Hussein Shafie, XMLmind Software.

XMLmind XSL-FO Converter Evaluation Edition v6.0 can be downloaded from http://www.xmlmind.com/foconverter/downloadeval.shtml.



  • Extension attribute xfc:label-format has now an "inherit" parameter. Example: xfc:label-format="%{lower-alpha;inherit})". Setting the "inherit" parameter specifies that a numbered fo:list-block “inherits” the numbering of its ancestor numbered fo:list-blocks. In other words, this parameter may be used to implement what is often called multi-level numbering (e.g. 1.A.a.)

    More information in "The xfc:label-format extension attribute".

  • Extension attribute xfc:render-as-table may be used as a quick and easy workaround for one of the most annoying limitations of XMLmind XSL-FO Converter: a fo:block having a border and/or background color and containing several other blocks, lists or tables is very poorly rendered in RTF, WML, DOCX and ODT. (Such container fo:blocks are quite commonly used, for example, to represent complex notes, admonitions or sidebars.)

    The reason of this limitation is due to the fact that the RTF, WML, DOCX and ODT output formats can —to make it simple— only contain a “flat” sequence of styled paragraphs and tables.


    <fo:block margin="0.5em 2em" padding="1em 4em"
      border="1px solid #800000" background="#FFF0F0"
      <fo:block space-before="0.5em" space-after="0.5em">First paragraph.</fo:block>
      <fo:block space-before="0.5em" space-after="0.5em">Second paragraph.</fo:block>
      <fo:block space-before="0.5em" space-after="0.5em">Third paragraph.</fo:block>

    A fo:block having attribute xfc:render-as-table="true" is automatically converted to an equivalent fo:table by XMLmind XSL-FO Converter.

    More information in "The xfc:render-as-table extension attribute".

  • The two above extension attributes are showcased in new article "How to adapt your existing XSLT stylesheet to the specificities of XMLmind XSL-FO Converter (PDF, RTF, WML, DOCX, ODT)".
  • RTF, WML, DOCX output formats: the empty placeholder paragraph contained in an empty table cell now inherits its font and text color from its ancestors. In previous versions of XFC, this placeholder always used the default font (e.g. Calibri 11pt) and the default text color.
  • XMLmind XSL Utility and XMLmind XSL Server:
    • Modified the DocBook XSL stylesheets so they use the two new extension attributes:
      • Attribute xfc:label-format is used to create proper RTF, WML, DOCX and ODT ordered lists, including nested ordered lists which inherit their numberings from their ordered list ancestors (that is, support for DocBook orderedlist/@inheritnum="inherit").
      • Attribute xfc:render-as-table is used to render notes and sidebars. This attribute enables a workaround for a limitation of XMLmind XSL-FO Converter: a fo:block having a border and/or background color and containing several other blocks, lists or tables is very poorly rendered in RTF, WML, DOCX and ODT.
    • Upgraded the following components:
      • Upgraded XMLmind DITA Converter (ditac for short) to version 3.3.0_01 which
        • in addition to syntax highlighting, can add line numbers and expand tabs in any element specializing pre;
        • fully supports Lightweight DITA (AKA LwDITA), whether XDITA (very small subset of DITA XML, plus new audio and video elements), HDITA (topics and maps written in HTML5) or MDITA


          Extended Profile (topics and maps written in Markdown).

        More information in "Fancy code blocks" and in "Lightweight DITA support".

        Please note that Markdown support of any kind in any XMLmind tool requires using a Java™ 1.8+ runtime.

      • Upgraded XMLmind Web Help Compiler (whc for short) to version 2.1.3_02.
      • Upgraded Saxon to version
      • Upgraded the Apache Batik plug-in to version 1.10.
      • Upgraded the Apache FOP plug-in to version 2.3.
  • XMLmind XSL-FO Converter, which passed all non-regression tests, is now officially supported on Java™ 10 and Java™ 11 platforms.

    Java 10 and 11 regression [JDK-8211422]

    For some PNG images,

    • Apache FOP reports error "I/O error while extracting image metadata: Error reading PNG metadata" and fails to render the PNG image.
    • XMLmind XSL-FO Converter reports warning "cannot get the resolution of image 'file:/tmp/XXX.png': Error reading PNG metadata" and renders the image using default image resolution (96dpi; may be changed using option -imageResolution=DPI or option /r DPI).

    For now, the only workaround for this bug is to open the faulty PNG image in an image editor (e.g. GIMP) and to re-export it as PNG under the same filename.

  • All programs which are part of XMLmind XSL-FO Converter are now officially supported on macOS Mojave (version 10.14).

Bug fixes:

  • DOCX output format only: a table contained in a list itself contained in a table often had incorrect left and right margins (the left and right padding of first table cell were added to the left and right margins of the table).
  • DOCX output format only: MS-Word failed to load files where a list was the last child of a table cell, when the last item of this list was a nested table.
  • “Bare URLs” specified as in the following example: <fo:external-graphic src="   https://www.acme.com/logo.png   "/> were not trimmed before being parsed. (The recommended way to specify an URL being: <fo:external-graphic src="url(https://www.acme.com/logo.png)"/>.)
  • Forgot to document the xfc:restart-numbering extension attribute, which is very useful when using named paragraph styles to create numbered lists.


  • The alternative implementation of XMLmind XSL-FO Converter engine for .NET, leveraging the obsolete Visual J# runtime has been discontinued.
  • Graphical application controlapp which allowed to stop, configure or reconfigure and start or restart both the bundled Jetty Servlet Container and the XMLmind XSL Server WebApp has been discontinued. XMLmind XSL Server is now available only as standard, ready to deploy, xslsrv.war.

Version 5.5 (March 27, 2018)


  • XMLmind XSL-FO Converter, which passed all non-regression tests, is now officially supported on Java™ 9 platforms.
  • Added command-line option -docx.variant=MS-Word_major_version [ strict ]?. Examples: -docx.variant=14, -docx.variant=15strict. (Corresponding option for the .NET version is: /variant.)

    This option may be used to mark generated DOCX files as being compatible with MS-Word having specified major version. Any major version other than 14 (MS-Word 2010), 15 (MS-Word 2013), 16 (MS-Word 2016) is currently ignored.

    Moreover suffix "strict" (supported only when MS-Word_major_version >= 15) may be used to generate DOCX files marked as being "Strict Open XML".

    Unless this option is used, the generated DOCX files are not marked as being compatible with a specific version of MS-Word.

    Specifying -docx.variant=15 suppresses the "[Compatibility Mode]" text appearing in the title bar of MS-Word 2013 and 2016.

    Note that specifying -docx.variant=15 does not prevent the generated DOCX file from being opened in MS-Word 2007 and 2010. However specifying -docx.variant=15strict generates "Strict Open XML" files which are not supported by MS-Word 2007 and 2010.

  • Changed the technology used to implement the context-sensitive online help from obsolete JavaHelp to a dedicated, embedded Web browser displaying Web Help.

    if the Java™ runtime used to run xslutil is older than version 1.8.0_40, the system Web browser rather than the dedicated, embedded Web browser is used to display the Web Help, which is much less convenient for the user.

  • Upgraded the following components in both XMLmind XSL Utility and XMLmind XSL Server:

Bug fixes:

  • Converting a DocBook document with the draft mode turned on relied on downloading http://docbook.sourceforge.net/release/images/draft.png. Now XMLmind XSL Utility and XMLmind XSL Server use a local copy of this graphics file.
  • XMLmind XSL Server: converting a document whose location is an URL having a fragment identifier (e.g. ending with #foo) caused the conversion to fail with the following error: Error: net.sf.saxon.trans.XPathException: Base URI {...} contains a fragment identifier.


  • In order to make it compatible with Java™ 9, new ext/lib/jai_imageio.jar no longer supports the JPEG 2000 image file format.

News items may be commercial in nature and are published as received.