About FOP
Release Notes
How to get Help

Running FOP
Output Formats


Getting involved



FOP Title

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.

Render Diagram

The latest version of Fop is 0.20.4 and it supports the XSL-FO Version 1.0 W3C Recommendation. 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 limited.

FOP is part of Apache's XML project. The homepage of FOP is Here you can find information about using and developing with FOP.

Users can subscribe to by sending an email to this is where user specific topics are discussed.


Formatting Diagram

This image is a demonstration of a two page document. The xml data on the left 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 requested output.

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 along with the xml.

FOP Objectives

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.

Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.