The fo data goes through a few stages. Each piece
of data will generally go through the process in the same way but some
information may be used a number of times or in a different order. To reduce
memory one stage will start before the previous is completed.
SAX Handler -> FO Tree -> Layout Managers -> Area Tree
-> Render -> document
In the case of rtf, mif etc.
SAX Handler -> FO Tree ->
Structure Renderer -> document
The Layout Managers use the FO Tree do their layout stuff and create an Area
Tree. The Area Tree is a representation of the final result. It is a
representation of a set of pages containing the text and other graphics. The
Area Tree is then given to a Renderer. The Renderer can read the Area Tree and
convert the information into the render format. For example the PDF Renderer
creates a PDF Document. For each page in the Area Tree the renderer creates a
PDF Page and places the contents of the page into the PDF Page. Once a PDF Page
is complete then it can be written to the output stream.
For the structure documents the Structure listener will read
directly from the FO Tree and create the document. These documents do not need
the layout process or the Area Tree.