<menu-item label="Area Tree" href="areas.html"/>
<menu-item label="Renderers" href="renderers.html"/>
</menu>
- <menu label="Understanding">
- <menu-item label="Introduction" href="understanding/index.html"/>
- </menu>
<menu label="Extras">
<menu-item label="Images" href="understanding/images.html"/>
<menu-item label="PDF Library" href="understanding/pdf_library.html"/>
<body>
<note>The articles in this section pertain to the <em>redesign</em> or <em>trunk</em> line of development.
The redesign is mainly focusing on parts of the layout process (converting the FO tree into the Area Tree).</note>
+
+
+<section>
+ <title>Introduction</title>
+ <section>
+ <title>Overview</title>
+ <p>FOP takes an xml file does its magic and then writes a document to a
+ stream.</p>
+ <p>xml -> [FOP] -> document</p>
+ <p>The document could be pdf, ps etc. or directed to a printer or the
+ screen. The principle remains the same. The xml document must be in the XSL:FO
+ format.</p>
+ <p>For convenience we provide a mechanism to handle XML+XSL as
+ input.</p>
+ <p>The xml document is always handled internally as SAX. The SAX events
+ are used to read the elements, attributes and text data of the FO document.
+ After the manipulation of the data the renderer writes out the pages in the
+ appropriate format. It may write as it goes, a page at a time or the whole
+ document at once. Once finished the document should contain all the data in the
+ chosen format ready for whatever use.</p>
+ </section>
+ <section>
+ <title>Stages</title>
+ <p>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.</p>
+ <p>SAX Handler -> FO Tree -> Layout Managers -> Area Tree
+ -> Render -> document</p>
+ <p>In the case of rtf, mif etc. <br/>SAX Handler -> FO Tree ->
+ Structure Renderer -> document</p>
+ <p>The FO Tree is constructed from the xml document. It is an internal
+ representation of the xml document and it is like a DOM with some differences.
+ 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.</p>
+ <p>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.</p>
+ </section>
+ </section>
<section id="primary-goals">
<title>Primary Design Goals</title>
<p>A discussion of project design properly begins with a list of the goals of the project. Out of these goals will flow the design issues and details, and eventually, the implementation.</p>
<menu-item label="Area Tree" href="../areas.html"/>
<menu-item label="Renderers" href="../renderers.html"/>
</menu>
- <menu label="Understanding">
- <menu-item label="Introduction" href="index.html"/>
- </menu>
<menu label="Extras">
<menu-item label="Images" href="images.html"/>
<menu-item label="PDF Library" href="pdf_library.html"/>
+++ /dev/null
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN"
- "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
-
-<document>
- <header>
- <title>Understanding FOP Design</title>
- <subtitle>Tutorial series about Design Approach to FOP</subtitle>
- </header>
-
- <body>
-<section>
- <title>Introduction</title>
-<p>
- Welcome to the understanding series. This will be
- a series of notes for developers to understand how FOP
- works. We will
- attempt to clarify the processes involved to go from xml(fo)
- to pdf or other formats. Some areas will get more
- complicated as we proceed.
- </p>
-
- <section>
- <title>Overview</title>
- <p>FOP takes an xml file does its magic and then writes a document to a
- stream.</p>
- <p>xml -> [FOP] -> document</p>
- <p>The document could be pdf, ps etc. or directed to a printer or the
- screen. The principle remains the same. The xml document must be in the XSL:FO
- format.</p>
- <p>For convenience we provide a mechanism to handle XML+XSL as
- input.</p>
- <p>The xml document is always handled internally as SAX. The SAX events
- are used to read the elements, attributes and text data of the FO document.
- After the manipulation of the data the renderer writes out the pages in the
- appropriate format. It may write as it goes, a page at a time or the whole
- document at once. Once finished the document should contain all the data in the
- chosen format ready for whatever use.</p>
- </section>
- <section>
- <title>Stages</title>
- <p>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.</p>
- <p>SAX Handler -> FO Tree -> Layout Managers -> Area Tree
- -> Render -> document</p>
- <p>In the case of rtf, mif etc. <br/>SAX Handler -> FO Tree ->
- Structure Renderer -> document</p>
- <p>The FO Tree is constructed from the xml document. It is an internal
- representation of the xml document and it is like a DOM with some differences.
- 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.</p>
- <p>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.</p>
- </section>
-
- </section>
- </body>
-</document>
-