XSL-FO processors

XSL-FO processors are really typesetting engines. An XSL-FO file is a mixture of text from your XML source document and XSL-FO tags that suggest how the text should be formatted. It is the XSL-FO processor that actually creates the typeset lines of text and lays them out on pages. An XSL-FO processor typically generates a PDF or PostScript file which can be fed to a printer to produce hardcopy output.

Currently there are many XSL-FO processors, but few of them have completely implemented the standard. There are at least three reasons for this:

The authors of the XSL-FO standard recognized how difficult it would be to implement, and so divided it into three levels of conformance: basic, extended, and complete. That way a processor can claim conformance to the lower conformance levels and produce useful output, while still be under development for the higher conformance levels.

Here are some of the currently available XSL-FO processors, listed in alphabetical order. FOP, PassiveTeX, and xmlroff are the free processors, but the commercial products implement more of the XSL-FO standard.

E3

High end publishing server from Arbortext, Inc. (http://www.arbortext.com). It runs on Windows and Unix.

FOP

FOP is a Java-based processor available free from the Apache XML Project (http://xml.apache.org/fop/). FOP can produce usable output, but it is still under development and has some limitations.

PassiveTeX

PassiveTeX from Sebastian Rahtz (http://www.tei-c.org.uk/Software/passivetex/) is a free XSL-FO processor based on TeX. It has fallen behind in its implementation of the XSL-FO specification, and many features of DocBook XSL do not work in PassiveTeX. Not recommended.

Unicorn Formatting Objects

A commercial product from Unicorn Enterprises SA (http://www.unicorn-enterprises.com). Implements only a subset of the XSL-FO standard. For Windows only.

XEP

A commercial product from RenderX (http://www.renderx.com). It is a Java-based product that runs on most platforms.

Xinc

A commercial product from Lunasil LTD (http://www.lunasil.com/). It is a Java-based product that runs on Linux and Windows.

XML2PDF

A commercial product from Altsoft (http://www.alt-soft.com/). For Windows only.

XML Professional Publisher (XPP)

A high-end XML publishing environment from XyEnterprise (http://www.xyenterprise.com/). It runs on Windows and Unix.

xmlroff

xmlroff (http://xmlroff.sourceforge.net/) is a free open source project based on libxml2 and other GNOME libraries. It is written in C.

XSL Formatter

A commercial product from Antenna House (http://www.antennahouse.com). It runs on Windows, Unix, and Linux.

other

Other XSL-FO processors are listed on the W3C's XSL information page.

A useful method for evaluating an XSL-FO processor is to review its compliance to the XSL-FO standard. Most processor vendors can provide a summary of which XSL-FO elements and properties their processor supports. Scan the list for features you need to see if they are supported. Such summaries are also useful in comparing different processors.