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.35 (November 30st 2002)

Major upgrade with several improvements below).

All new Product Features are eligible for XMLMill for Java and XMLMill for Domino.


Extended Image support:

  • More image formats can now be handled by XMLMill.
    - BMP 24bit (true color)
    - BMP 8bit (256 colors)
    - BMP 4bit (16 colors)
    - BMP 2bit (4 colors)
    - BMP 1bit (2 colors)
    - BMP 8bit (grayscale)
    - BMP 8bit RLE4 compressed
    - BMP 8bit RLE8compressed
    - PCX 24bit (true color)
    - PCX 8bit (256 colors)
    - PCX 4bit (16 colors)
    - PCX 2bit (4 colors)
    - PCX 1bit (2 colors)
    - DWG AutoCad (Preview image in dwg)
  • The image class model was refactored to optimize the way images are read from a file, stored in memory and written to the PDF document:
    Read from a file:
    We have optimized the speed images are written to the PDF document. Performance increase from 10 to 50 % should be possible.
    Memory storage:
    No more than one image will be held in memory at a time. An image will only be in memory the time the image is written to the PDF document. The memory occupied will be released once the image is written in the stream. This means that XMLMill is now suited to generate documents with a huge numbers of images.
    Written to the PDF document:
    The bytes are immediately compressed so huge image files will consume considerably less memory (up to 90% compression - depending on image type).

Support for 'headless' Linux/Unix servers (no X-server):

XMLMill can now be run in batch on a Unix server without a X server. Unix users who just want to generate high volume .PDF documents with(out) images can now use the batch.sh script.

XMLMill can now be run as a stand-alone application:

XMLMill can now be run a s stand-alone application using the gui.cmd or gui.sh script. This way you do no longer need a browser.

XMLMill applet is detached from the browser:

The applet is detached from the browser, making it possible that the browser can be minimized, facilitating working with XMLMill.


  • It was possible that a border round a table was not printed, this has been solved.
  • It was not possible to use the ZapfDingbats Type1 font, this has been solved.


  • The table can contain row-spanning.
  • The header can contain a line below it.
  • The footer can contain a line above it.


The error: Catch-error:Cannot write to a closed output stream has been solved. The transform instance (called by transform.transform() in the Fetch.java examples included in the download) no longer closes the outputstream. This way the servlet can append the 8192 bytes correctly to the stream (see servlet examples in the testservlet directory).


  • The border-style attribute is now according to the CSS guidelines. The attribute is now a shorthand attribute for setting border-top-style, border-right-style, border-bottom-style and border-left-style of a box, textbox or field of a table.
  • The border-width attribute is now according to the CSS guidelines. The attribute is now a shorthand attribute for setting border-top-width, border-right-width, border-bottom-style width and border-left-width of a box, textbox or field of a table.
  • Following new attributes are added to the <box>, <textbox>, <table>, <rows>, <row> and <field> tags: - border
    - border-top
    - border-right
    - border-bottom
    - border-left
    - border-top-style
    - border-right-style
    - border-bottom-style
    - border-left-style
    - border-top-color
    - border-right-color
    - border-bottom-color
    - border-left-color
    - border-top-width
    - border-right-width
    - border-bottom-width
    - border-left-width

All these attributes follow the CSS guidelines as close as possible.

To use these attributes in a table please check the invoice.xsl in the xml directory in the download as an example.

  • The last four attributes are not yet implemented, although they are already foreseen in the xmlmill.dtd (implementation will follow in the next version).


  • The XMLMill class is renamed to Main. This class can no longer be used to execute XMLMill in batch. Use com.xmlmill.batch.Main instead.


  • A separate class com.xmlmill.batch.Main now exists for using XMLMill in batch. This class can also be used on Unix servers without a Xserver.
    A new option is forseen: -t : Generate XSLT transformations only.-t : -l test.log
    -l <directory + filename> : -l c:\log\test.log
    -l <directory> : -l c:\log
    The -l option can contain only a filename (it will be written in the directory of the first xml file that will be processed).
    The -l option can contain a non existing directory name (it will automatically be created).
    The -l option can contain only a directory (the filename of the log file will be defined by xmlmill, format: xmlmill_9999999999.log.
    If no -l option is defined, no logfile will be created.
    If the logfile already exists, the logfile will be overwritten.
  • The -v verbose option is added, so it is possible to eliminate the output generated.



This version uses Xalan 2.4.0 production release. As a result, following changed need to be taken into account:

  • The sxerces.jar file is changed into sxercesImpl.jar.
  • The sxsltc.jar has been added.
  • The xmlmill.html has been adapted in order to reflect above changes.
  • The xmlmill.bat and xmlmill.cmd files have been adapted in order to reflect above changes (change of classpath value).
  • This version of XMLMill uses Xerces-J 2.1.0.

Release notes overview page

Copyright © 2001 - 2012. All rights reserved. XMLMill and XMLMill logo are trademarks of Pecunia Data Systems, bvba.
Powered by Apache CocoonPowered by XMLMill