FOP (Formatting Objects Processor) is the world's first print formatter driven by XSL formatting
objects and the world's first output independent formatter. It is a
Java application that reads a formatting object tree and then
renders the resulting pages to a specified output. Output formats
currently supported are PDF, PCL, PS, SVG, XML (area tree representation),
Print, AWT, MIF and TXT.
The primary output target is PDF.
The latest version of Fop is 0.20.4 and it supports the
XSL-FO Version 1.0
You can download
Fop including a precompiled version, the source code and many example files to
get you started. Pointers to introductions into xsl:fo can be found in the
resources section. Please be aware, that
Fop is at the moment not a full implementation of the basic conformance level
of the xsl:fo standard. You can find a list of supported flow objects and properties
in the section Features and in section
Limitations in what way this support is
FOP is part of Apache's XML project. The homepage of FOP is
Here you can find information about using and developing with FOP.
this is where user specific topics are discussed.
is formatted into the two pages on the right. The document contains static areas
that appear on every page, an external graphic in this case an svg document.
There is a footnote on the first page and a table that goes across both pages.
The advantage of XSL is the ability to take an XML document and to format
the information into a page layout. The XML document can be generated
in any way, the most common would be to use XSLT. FOP takes the XML
and formats the data into pages. The pages are then rendered to the
This is a real document. The image was created by rendering the document
to the svg renderer then putting the rendered pages into an svg document
The goals of the Apache XML FOP Project are to deliver an XSL FO->PDF formatter that is compliant to at least the Basic
conformance level described in the W3C Recommendation from 15 October 2001, and that complies with the 11 March 1999 Portable Document
Format Specification (Version 1.3) from Adobe Systems.
Conformance to the XML 1.0 Recommendation, XSLT 1.0 Recommendation and the XML Namespaces Recommendation is
understood. Other relevant documents, such as the XPath and XLink Working Drafts, are referenced as necessary. The FOP
Project will attempt to use the latest version of evolving specifications.
To reach this aim currently the layout system is being redesigned to
better handle the formatting of all different types of formatting objects.