The main purpose of FOP is to render XSL-FO documents into a variety of output formats, including PDF, text, MIF, Postscript, and others. This process requires two conversions as the data moves through the following three stages:

  1. XSL-FO document (input). This document should conform to the XSL standard (currently version 1.0). It is a description of the general formatting requirements of the document.
  2. Area Tree document (intermediate). This document is a model of the specific, paginated layout that fulfills the general requirements of the input XSL-FO document, and conforms to the constraints of the XSL standard. It is transitory.
  3. Rendered document (output). This document implements a specific file format to serialize the Area Tree document.

As a convenience to users, FOP can also manage the following ancillary processes:

To get an overview of the FOP process, begin with the class org.apache.fop.apps.Driver.

Developer Information