XMLMill - convert xml to pdf with java. Generate PDF from xml/xsl.

High volume xml-xsl to PDF Generation

This page as PDFPrinter friendly pageEmail this page to a friendSubscribe to our mailing list

Release Notes

XMLMill 1.30 (July 30st, 2002)

  • Please note that the DTD has changed in this version. You need to update your xmlmill xml / xsl files in order to be able to use this version of XMLMill with it. Please make a back-up of all your xml/xsl/Java files before installing this version.


Enhanced Element Positioning (EEP 1.60):

  • Better collision determination of elements.

Better control how text is displayed:

  • Core classes have been refactored/rewritten to optimize the way text is displayed on the page. You might notice some layout changes (especially text being printed closer together) but with the new attributes you can control much more how text is formatted.


  • (!) The line-width attribute has changed to border-width, this to be more according the css guidelines (except for the <image> tag).
  • (!) Images in the <p>, <textbox>, <header>, <footer>, <theader> and <field> tags are now defined using the <image> tag instead of the src attribute in these tags. For example:
    Previous versions:
    <field id="fn"
    Current version (1.30):
    <field id="fn">
    <image src="images\xmlmill.jpg"

    also possible:
    <field id="fn" align="center" valign="center"> <image src="images\xmlmill.jpg" /> </field>
  • (!) The <rows> tag is added to the <table> tag, eliminating the need to repeat all common row attributes in every <row> tag. For example:
    Previous versions: <table width="40%"> <columns> <cname id="ln" width="100%"/> </columns> <theader padding="2px"> <field id="ln">Last Name</field> </theader> <row padding="2px"> <field id="ln">Fitgerald</field> </row> </table> Current version (1.30): <table width="40%"> <columns> <cname id="ln" width="100%"/> </columns> <rows padding="2px"> <theader> <field id="ln">Last Name</field> </theader> <row> <field id="ln">Fitgerald</field> </row> </rows> </table>
  • The <field> tag is extended with the colspan attribute, making it possible to that one cell spans multiple columns (The rowspan attribute will be added in the next minor upgrade). For example:
    Previous versions: <!-- Separate table to mimic the header of this table --> <table width="80%" align="center"> <columns> <cname id="details" width="100%" /> </columns> <rows> <theader> <field id="details">DETAILS</field> </theader> </rows> </table> <!-- Table with data --> <table width="80%" align="center" > <columns> <cname id="det" width="30%" /> <cname id="nbr" width="70%" /> </columns> <rows> <row> <field id="det">Total amount</field> <field id="nbr">9000.00</field> </row> </rows> </table> Current version (1.30): (as of this version we can use colspan) <!-- Table with data including header spanning two columns --> <table width="80%" align="center"> <columns> <cname id="det" width="30%" /> <cname id="nbr" width="70%" /> </columns> <rows> <theader> <field colspan="2" id="det">PAYMENT</field> </theader> <row> <field id="det">Total amount</field> <field id="nbr">9000.00</field> </row> </rows> </table>
  • (!) The text-align and text-valign atributes in the <field> tag are changed to align and valign.
  • The <p>, <textbox>, <header>, <footer>, <theader> and <field> tags are extended with the <inline> tag to change the formatting of text inside these elements.
  • The <p>, <textbox>, <header>, <footer>, <theader> and <field> tags are extended with following new attributes to control how text is displayed:
    - letter-spacing = "normal | xxpx"
    - word-spacing = "normal | xxpx"
    - line-spacing = "normal | 1.5 lines | double | xxpx"
    - text-transform = "none | lowercase | uppercase | capitalize"
    - text-indent = "xxpx | xxcm | xxmm |xxin"
  • The text in a <p>, <textbox>, <theader> and <field> tag can now be justified using the align="justify" attribute/value.
  • The values overline | line-through can now be used in a text-decoration attribute.


  • The definition of a font (via the font attribute) in the <pagetemplate> tag now is fixed (was broken in previous version).


  • The PDELogFile.resetErrorLog() now works correctly (the error log will be reset to the standard error PrintStream.).
  • The setTitle(), setSubject(), SetAuthor(), setKeywords() and setCreator() and corresponding getter methods are no longer available in the PDEDocument class. To add document properties, create a PDEInfo instance and add it to the document via the setPDFInfo() method of the PDFDocument class.
  • A Version class was added in order to display more easily the version number of XMLMill.
  • Adding text to a PDEParagraph or PDETextBox object now needs an instance of the PDEInlineText, which is responsible for the the formatting of this text.


  • The log file is now correctly closed after the transformation is ended.
  • The log file will mention the XMLMill, Xalan and Xerces version number.
  • The log file will now end each transformation with following information: -- Done (xxxx bytes - xxxx elapsed (milliseconds)) --. This to facilitate the outcome of the transformation.
  • When generating a PDF with a xml and xsl file, the log file displayed for every tag in the XML file following message : Element type "tagname" must be declared. This has been solved.


  • This version uses release Xalan 2.4.D1.
    /** Due to a last minute bug this version still uses the previous version of Xerces (1.4.4). We will update this with the next minor release. **/
  • When generating the number of pages with the [Pages] keyword, the number of pages are correctly positioned on the page when using Acrobat 4.0 for viewing and Acrobat 5.0 (previously it was wrong positioned when viewing with Acrobat 5.0).
Copyright © 2001 - 2012. All rights reserved. XMLMill and XMLMill logo are trademarks of Pecunia Data Systems, bvba.
Powered by Apache CocoonPowered by XMLMill