Formatting Objects Processor (FOP, also known as Apache FOP) is a Java application that converts XSL Formatting Objects (XSL-FO) files to PDF or other printable formats. FOP was originally developed by James Tauber who donated it to the Apache Software Foundation in 1999. It is part of the Apache XML Graphics project.

FOP is open source software, and is distributed under the Apache License 2.0.

Current status The latest version of Apache FOP is 2.11.

Major limitations Most important elements added in XSL-FO 1.1 (flow maps, table markers, indexes. etc.) are not available

In addition, older XSL-FO 1.0 features are still not fully supported including automatic table layout, floats and more.

Input support Apache FOP supports embedding a number of image formats in the XSL-FO (through the <fo:external-graphic> element). These include:

SVG PNG Bitmap BMP PostScript (as EPS) JPEG Some TIFF formats.

Apache FOP implements the <fo:float> element with some limitations. In versions prior to 2.0, external graphics objects were limited to being drawn inline or in a block with no wrapped text.

Output formats Apache FOP supports the following output formats:

PDF (best output support), including PDF/X and PDF/A with some limitations ASCII text file facsimile PostScript Direct printer output (PCL) AFP RTF Java2D/AWT for display, printing, and page rendering to PNG and TIFF XML (Area Tree XML) Bitmap (TIFF/PNG)

In progress: MIF SVG

See also

XSL Formatting Objects (XSL-FO) XSL

External links Apache FOP Project XSL-FO formatter comparison Accessible PDF generation with Apache FOP

References