You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general-cvs@xml.apache.org by je...@apache.org on 2003/04/29 18:45:44 UTC

cvs commit: xml-site/targets/fop/dev doc.html doc.pdf examples.html extensions.html extensions.pdf faq.html fonts.html implement.html index.html pdf.html ps.html svg.html svg.pdf testing.html tools.html

jefft       2003/04/29 09:45:42

  Modified:    targets/fop anttask.html anttask.pdf bugs.html changes.html
                        compiling.html compliance.html compliance.pdf
                        configuration.html download.html embedding.html
                        embedding.pdf examples.html extensions.html
                        extensions.pdf faq.html faq.pdf fo.html fonts.html
                        fonts.pdf gethelp.html graphics.html graphics.pdf
                        index.html index.pdf license.html logocontest.html
                        news.html output.html pdfencryption.html
                        relnotes.html resources.html resources.pdf
                        running.html running.pdf status.html todo.html
               targets/fop/design areas.html areas.pdf breakpos.html
                        breakpos.pdf embedding.html embedding.pdf
                        extending.html extending.pdf fotree.html fotree.pdf
                        index.html index.pdf layout.html layout.pdf
                        optimise.html optimise.pdf properties.html
                        properties.pdf renderers.html renderers.pdf
                        useragent.html useragent.pdf
               targets/fop/design/alt.design FOPropertySets.html
                        FoXMLEvent.html SyncedFoXmlEventsBuffer.html
                        XMLNamespaces.html codedisplay.js
                        compound-properties.html coroutines.html
                        footnotes.html galleys.html index.html keeps.html
                        spaces.html traits.html user-agent-refs.html
               targets/fop/design/alt.design/properties
                        AbstractPropertyValue.html FOAttributes.html
                        PropNames.html Property.html PropertyConsts.html
                        PropertyParser.html PropertySets.html
                        PropertyTokenizer.html PropertyValue.html
                        PropertyValueList.html ShorthandPropSets.html
                        codedisplay.js introduction.html
               targets/fop/dev doc.html doc.pdf examples.html
                        extensions.html extensions.pdf faq.html fonts.html
                        implement.html index.html pdf.html ps.html svg.html
                        svg.pdf testing.html tools.html
  Added:       targets/fop/design images.html images.pdf parsing.html
                        parsing.pdf pdf-library.html pdf-library.pdf
                        svg.html svg.pdf
  Log:
  Automatic publish at Tue Apr 29 18:45:13 CEST 2003 from http://forrestbot.cocoondev.org.
  
  Revision  Changes    Path
  1.6       +81 -60    xml-site/targets/fop/anttask.html
  
  Index: anttask.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/anttask.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- anttask.html	23 Apr 2003 03:40:00 -0000	1.5
  +++ anttask.html	29 Apr 2003 16:45:16 -0000	1.6
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Ant task</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="anttask.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="anttask.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -295,12 +296,7 @@
   <a href="#Description">Description</a>
   </li>
   <li>
  -<a href="#Parameters">Parameters</a>
  -<ul class="minitoc">
  -<li>
  -<a href="#Parameters+specified+as+nested+elements">Parameters specified as nested elements</a>
  -</li>
  -</ul>
  +<a href="#Parameters+for+FOP+Ant+task">Parameters for FOP Ant task</a>
   </li>
   <li>
   <a href="#Examples">Examples</a>
  @@ -308,24 +304,40 @@
   </ul>
       
   <p>
  -    FOP provides an Ant task for integration into the build process.</p>
  +    FOP provides an Ant task for automating the document build process.</p>
       
   <a name="N101C1"></a><a name="Description"></a>
   <h3>Description</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  -    FOP Ant task converts xsl-fo documents to PDF/PS/PCL/MIF/RTF output
  +    The FOP Ant task will convert XSL-FO documents to PDF/PS/PCL/MIF/RTF output
       (see <a href="output.html">Output formats</a> for available formats).</p>
   <p>
  -    FileSets are used to select files to render.</p>
  +	To call FOP tasks within Ant, first add a FOP task definition to your Ant build file.
  +	One method of defining the task is as follows:
  +	</p>
  +<pre class="code">
  +&lt;property name="fop.dir" value="....path to your FOP jar files..."/&gt;
  +
  +&lt;taskdef name="fop" 
  +         classname="org.apache.fop.tools.anttasks.Fop"&gt;
  +         &lt;classpath&gt;
  +            &lt;pathelement location="${fop.dir}\fop.jar"/&gt;
  +            &lt;pathelement location="${fop.dir}\avalon.jar"/&gt;
  +            &lt;pathelement location="${fop.dir}\batik.jar"/&gt;
  +         &lt;/classpath&gt;
  +&lt;/taskdef&gt;
  +	</pre>
  +<p>
  +	Then create FOP tasks within your Ant build file, using the FOP task parameters listed below.</p>
   </div>
       <!-- TODO: Installation/Configuration -->
       
  -<a name="N101D3"></a><a name="Parameters"></a>
  -<h3>Parameters</h3>
  +<a name="N101DA"></a><a name="Parameters+for+FOP+Ant+task"></a>
  +<h3>Parameters for FOP Ant task</h3>
   <div style="margin-left: 0 ; border: 2px">
   <table class="ForrestTable" cellspacing="1" cellpadding="4">
  -<caption>parameters for FOP Ant task</caption> 
  +<caption>Parameters specified as attributes</caption> 
         
   <tr> 
          
  @@ -339,7 +351,7 @@
          
   <td colspan="1" rowspan="1">fofile</td> 
          <td colspan="1" rowspan="1">XSL-FO file to be rendered</td> 
  -       <td colspan="1" rowspan="1">Only if there's no fileset</td> 
  +       <td colspan="1" rowspan="1">Yes, if no fileset nested element is used</td> 
         
   </tr> 
         
  @@ -347,14 +359,14 @@
          
   <td colspan="1" rowspan="1">outfile</td> 
          <td colspan="1" rowspan="1">Output filename</td> 
  -       <td colspan="1" rowspan="1">Only when fofile is used (if there's no fileset)</td> 
  +       <td colspan="1" rowspan="1">Yes, when fofile is used.  (This attribute is not valid for filesets.)</td> 
         
   </tr> 
         
   <tr> 
          
   <td colspan="1" rowspan="1">format</td> 
  -       <td colspan="1" rowspan="1">Possible ouput formats:<br>
  +       <td colspan="1" rowspan="1">Possible output formats:<br>
            
   <span class="codefrag">application/pdf</span>
   <br>
  @@ -376,9 +388,9 @@
            
   <span class="codefrag">text/xml</span>
   <br>
  -         Defaults to <span class="codefrag">application/pdf</span>
  -       </td> 
  -       <td colspan="1" rowspan="1">No, default is <span class="codefrag">application/pdf</span></td> 
  +       
  +</td> 
  +       <td colspan="1" rowspan="1">No, defaults to <span class="codefrag">application/pdf</span></td> 
         
   </tr> 
         
  @@ -386,22 +398,19 @@
          
   <td colspan="1" rowspan="1">outdir</td> 
          <td colspan="1" rowspan="1">Output directory</td> 
  -       <td colspan="1" rowspan="1">Yes</td> 
  -      
  -</tr> 
  -      
  -<tr> 
  -       
  -<td colspan="1" rowspan="1">basedir</td> 
  -       <td colspan="1" rowspan="1">Directory to work from</td> 
  -       <td colspan="1" rowspan="1">Yes</td> 
  +       <td colspan="1" rowspan="1">Required if a fileset is used to specify the files to render; optional for fofile. (Can alternatively specify the full path in the fofile value.)</td> 
         
   </tr> 
  +      <!--tr  Commented out; attribute is currently unimplemented according to the code> 
  +       <td>basedir</td> 
  +       <td>Directory to work from</td> 
  +       <td>Yes</td> 
  +      </tr--> 
         
   <tr> 
          
   <td colspan="1" rowspan="1">userconfig</td> 
  -       <td colspan="1" rowspan="1">File with user configuration (same as the "-c" command line option)</td> 
  +       <td colspan="1" rowspan="1">User configuration file (same as the FOP "-c" command line option)</td> 
          <td colspan="1" rowspan="1">No</td> 
         
   </tr> 
  @@ -410,59 +419,71 @@
          
   <td colspan="1" rowspan="1">messagelevel</td> 
          <td colspan="1" rowspan="1">Logging level<br>
  -       Possible values: error, warn, info, verbose, debug</td> 
  -       <td colspan="1" rowspan="1">No; defaults to verbose</td> 
  +       Possible values: <span class="codefrag">error</span>, <span class="codefrag">warn</span>, <span class="codefrag">info</span>, <span class="codefrag">verbose</span>, <span class="codefrag">debug</span></td> 
  +       <td colspan="1" rowspan="1">No, defaults to <span class="codefrag">verbose</span></td> 
         
   </tr> 
         
   <tr> 
          
   <td colspan="1" rowspan="1">logFiles</td> 
  -       <td colspan="1" rowspan="1">Controls whether the names of the files that are processed are logged or not</td> 
  -       <td colspan="1" rowspan="1">No; default is true</td> 
  +       <td colspan="1" rowspan="1">Controls whether the names of the files that are processed are logged 
  +	   		(<span class="codefrag">true</span>) or not (<span class="codefrag">false</span>)</td> 
  +       <td colspan="1" rowspan="1">No, default is <span class="codefrag">true</span></td> 
         
   </tr> 
        
   </table>
  -<a name="N102A4"></a><a name="Parameters+specified+as+nested+elements"></a>
  -<h4>Parameters specified as nested elements</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<a name="N102A9"></a><a name="fileset"></a>
  -<h5>fileset</h5>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>
  -      FileSets are used to select files that will be rendered to the
  -      selected output format.</p>
  -</div>
  -</div>
  +<p></p>
  +<table class="ForrestTable" cellspacing="1" cellpadding="4">
  +<caption>Parameters specified as nested elements</caption>
  +      
  +<tr> 
  +       
  +<th colspan="1" rowspan="1">Attribute</th> 
  +       <th colspan="1" rowspan="1">Description</th> 
  +       <th colspan="1" rowspan="1">Required</th> 
  +      
  +</tr> 
  +      
  +<tr> 
  +       
  +<td colspan="1" rowspan="1">fileset</td> 
  +       <td colspan="1" rowspan="1"><a href="http://ant.apache.org/manual/CoreTypes/fileset.html">FileSets</a> 
  +	   		are used to specify multiple XSL-FO files to be rendered.</td> 
  +       <td colspan="1" rowspan="1">Yes, if no fofile attribute is supplied</td> 
  +      
  +</tr> 
  +	  
  +</table>
   </div>
       
  -<a name="N102B4"></a><a name="Examples"></a>
  +<a name="N102DF"></a><a name="Examples"></a>
   <h3>Examples</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  -    Converts one XSL-FO file to PDF:
  +    The following example converts a single XSL-FO file to a PDF document:
       </p>
   <pre class="code">
  -&lt;target name="generate-pdf" depends="init" description="Generates PDF file"&gt;
  -
  -  &lt;taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop"
  -           classpathref="libs-run-classpath"/&gt;
  -
  -  &lt;fop fofile="examples/fo/basic/extensive.fo" outfile="${build.dir}/extensive.pdf"/&gt;
  -
  +&lt;target name="generate-pdf" description="Generates a single PDF file"&gt;
  +   &lt;fop format="application/pdf" 
  +        fofile="c:\working\foDirectory\foDocument.fo"
  +        outfile="c:\working\pdfDirectory\pdfDocument.pdf" /&gt;
   &lt;/target&gt;
       </pre>
   <p>
  -    Converts a whole directory of XSL-FO files to PostScript:
  +    This example converts all XSL-FO files within an entire directory to PostScript:
       </p>
   <pre class="code">
  -&lt;fop format="application/postscript" outdir="${build.dir}"
  -     messagelevel="debug" basedir="${fo.examples.dir}"&gt;
  -  &lt;fileset dir="${fo.examples.dir}"&gt;
  -    &lt;include name="**/*.fo"/&gt;
  -  &lt;/fileset&gt;
  -&lt;/fop&gt;
  +&lt;target name="generate-multiple-ps" 
  +        description="Generates multiple PostScript files"&gt;
  +   &lt;fop format="application/postscript" 
  +        outdir="${build.dir}" messagelevel="debug"&gt;
  +        &lt;fileset dir="${fo.examples.dir}"&gt;
  +           &lt;include name="*.fo"/&gt;
  +        &lt;/fileset&gt;
  +   &lt;/fop&gt;
  +&lt;/target&gt;
       </pre>
   </div>
       
  
  
  
  1.2       +203 -123  xml-site/targets/fop/anttask.pdf
  
  	<<Binary file>>
  
  
  1.28      +2 -1      xml-site/targets/fop/bugs.html
  
  Index: bugs.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/bugs.html,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- bugs.html	23 Apr 2003 03:40:00 -0000	1.27
  +++ bugs.html	29 Apr 2003 16:45:16 -0000	1.28
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Bugs and Other Trackable Issues</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="bugs.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="bugs.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.15      +2 -1      xml-site/targets/fop/changes.html
  
  Index: changes.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/changes.html,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- changes.html	23 Apr 2003 03:40:00 -0000	1.14
  +++ changes.html	29 Apr 2003 16:45:16 -0000	1.15
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>History of Changes</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="changes.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="changes.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.33      +2 -1      xml-site/targets/fop/compiling.html
  
  Index: compiling.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/compiling.html,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- compiling.html	23 Apr 2003 03:40:00 -0000	1.32
  +++ compiling.html	29 Apr 2003 16:45:16 -0000	1.33
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Compiling FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="compiling.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="compiling.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.14      +1 -1      xml-site/targets/fop/compliance.html
  
  Index: compliance.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/compliance.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- compliance.html	23 Apr 2003 03:40:00 -0000	1.13
  +++ compliance.html	29 Apr 2003 16:45:17 -0000	1.14
  @@ -301,7 +301,7 @@
   <tr>
   <td valign="middle">
   <h1>FOP 0.20.4 Standards Compliance</h1>
  -</td><td align="center" width="40" nowrap="nowrap"><a href="compliance.pdf" class="dida"><img border="0" src="skin/images/pdfdoc.gif" alt="PDF"><br>PDF</a></td>
  +</td><td align="center" width="40" nowrap="nowrap"><a href="compliance.pdf" class="dida"><img border="0" src="skin/images/printer.gif" alt="PDF"><br>PDF</a></td>
   </tr>
   </table>
   <ul class="minitoc">
  
  
  
  1.5       +160 -0    xml-site/targets/fop/compliance.pdf
  
  	<<Binary file>>
  
  
  1.12      +2 -1      xml-site/targets/fop/configuration.html
  
  Index: configuration.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/configuration.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- configuration.html	23 Apr 2003 03:40:00 -0000	1.11
  +++ configuration.html	29 Apr 2003 16:45:17 -0000	1.12
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Configuration</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="configuration.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="configuration.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.34      +8 -7      xml-site/targets/fop/download.html
  
  Index: download.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/download.html,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- download.html	23 Apr 2003 03:40:00 -0000	1.33
  +++ download.html	29 Apr 2003 16:45:17 -0000	1.34
  @@ -286,23 +286,24 @@
   <tr>
   <td valign="middle">
   <h1>Downloading FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="download.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="download.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
   <ul class="minitoc">
   <li>
  -<a href="#Binary+or+Source%3F">Binary or Source?</a>
  +<a href="#dist-type">Binary or Source?</a>
   </li>
   <li>
  -<a href="#Binary+Download">Binary Download</a>
  +<a href="#binary">Binary Download</a>
   </li>
   <li>
  -<a href="#Source+Download">Source Download</a>
  +<a href="#source">Source Download</a>
   </li>
   </ul>
     
  -<a name="N101BE"></a><a name="Binary+or+Source%3F"></a>
  +<a name="N101BE"></a><a name="dist-type"></a>
   <h3>Binary or Source?</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Most FOP users will want to download the latest binary distribution, which is ready to run "out of the box."
  @@ -316,14 +317,14 @@
   </ul>
   </div>
     
  -<a name="N101D1"></a><a name="Binary+Download"></a>
  +<a name="N101D1"></a><a name="binary"></a>
   <h3>Binary Download</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Binary distributions include "-bin" in their names, and can be downloaded from the <a href="http://xml.apache.org/dist/fop/">FOP Distribution</a> directory.
   </p>
   </div>
     
  -<a name="N101DF"></a><a name="Source+Download"></a>
  +<a name="N101DF"></a><a name="source"></a>
   <h3>Source Download</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>You must first determine which of the two main development branches you wish to download, "maintenance" or "redesign".
  
  
  
  1.36      +52 -41    xml-site/targets/fop/embedding.html
  
  Index: embedding.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/embedding.html,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- embedding.html	23 Apr 2003 03:40:00 -0000	1.35
  +++ embedding.html	29 Apr 2003 16:45:18 -0000	1.36
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Embedding FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="embedding.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="embedding.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -302,12 +303,12 @@
   <a href="#logging">Controlling logging</a>
   </li>
   <li>
  +<a href="#input">Input Sources</a>
  +</li>
  +<li>
   <a href="#hints">Hints</a>
   <ul class="minitoc">
   <li>
  -<a href="#input">XML/XSL/DOM Inputs</a>
  -</li>
  -<li>
   <a href="#object-reuse">Object reuse</a>
   </li>
   <li>
  @@ -514,31 +515,41 @@
   <p>If you want to use yet another logging facility you simply have to create a class that implements org.apache.avalon.framework.logging.Logger
     and set it on the Driver object. See the existing implementations in Avalon Framework for examples.</p>
   </div>
  -  
  -<a name="N10257"></a><a name="hints"></a>
  -<h3>Hints</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<a name="N1025D"></a><a name="input"></a>
  -<h4>XML/XSL/DOM Inputs</h4>
  +    
  +<a name="N10257"></a><a name="input"></a>
  +<h3>Input Sources</h3>
   <div style="margin-left: 0 ; border: 2px">
  +<p>The input XSL-FO document is always handled internally as SAX (see the <a href="design/parsing.html">Parsing Design Document</a> for the rationale).
  +However, the input itself can be provided in a variety of ways to FOP, which normalizes the input (if necessary) into SAX events:</p>
  +<ul>
  +        
  +<li>
  +<strong>SAX Events through SAX Handler</strong>: <span class="codefrag">FOTreeBuilder</span> is the SAX Handler which is obtained through <span class="codefrag">getContentHandler</span> on <span class="codefrag">Driver</span>.</li>
  +        
  +<li>
  +<strong>DOM (which is converted into SAX Events)</strong>: The conversion of a DOM tree is done via the <span class="codefrag">render(Document)</span> method on <span class="codefrag">Driver</span>.</li>
  +        
  +<li>
  +<strong>Data Source (which is parsed and converted into SAX Events)</strong>: The <span class="codefrag">Driver</span> can take an <span class="codefrag">InputSource</span> as input.
  +This can use a <span class="codefrag">Stream</span>, <span class="codefrag">String</span> etc.</li>
  +        
  +<li>
  +<strong>XML+XSLT Transformation</strong> (which is transformed using an XSLT Processor and the result is fired as SAX Events: <span class="codefrag">XSLTInputHandler</span> is used as an <span class="codefrag">InputSource</span> in the render(<span class="codefrag">XMLReader</span>, <span class="codefrag">InputSource</span>) method on <span class="codefrag">Driver</span>.</li>
  +      
  +</ul>
  +<p>There are a variety of upstream data manipulations possible.
  +For example, you may have a DOM and an XSL stylesheet; or you may want to
  +set variables in the stylesheet.
  +Interface documentation and some cookbook solutions to these situations are provided in <a target="_blank" href="http://xml.apache.org/xalan-j/usagepatterns.html">Xalan Basic Usage Patterns</a>.</p>
   <p>
  -You may want to supply you input to FOP from different data sources.
  -For example you may have a DOM and XSL stylesheet or you may want to
  -set variables in the stylesheet. The page here:
  -<a target="_blank" href="http://xml.apache.org/xalan-j/usagepatterns.html">
  -http://xml.apache.org/xalan-j/usagepatterns.html</a> describes
  -how you can do these things.
  -     </p>
  -<p>
  -You can use the content handler from the driver to create a SAXResult.
  -The transformer then can fire SAX events on the content handler which
  -will in turn create the rendered output.
  -     </p>
  -<p>
  -Examples showing this can be found at the bott
  +See the <a href="#examples">Examples</a> for some variations on input. 
        </p>
   </div>
  -<a name="N10271"></a><a name="object-reuse"></a>
  +  
  +<a name="N102B4"></a><a name="hints"></a>
  +<h3>Hints</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<a name="N102BA"></a><a name="object-reuse"></a>
   <h4>Object reuse</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -553,7 +564,7 @@
   IntputStream and renderer.
        </p>
   </div>
  -<a name="N1027E"></a><a name="render-info"></a>
  +<a name="N102C7"></a><a name="render-info"></a>
   <h4>Getting information on the rendering process</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -568,7 +579,7 @@
   </div>
   </div>
     
  -<a name="N1028C"></a><a name="servlet"></a>
  +<a name="N102D5"></a><a name="servlet"></a>
   <h3>Using FOP in a Servlet</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -599,7 +610,7 @@
   </div>
   </div>
     
  -<a name="N102A9"></a><a name="servlet-transform"></a>
  +<a name="N102F2"></a><a name="servlet-transform"></a>
   <h3>Using FOP in a Servlet with an XSLT Transformation</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -640,7 +651,7 @@
       </p>
   </div>
     
  -<a name="N102D4"></a><a name="config-external"></a>
  +<a name="N1031D"></a><a name="config-external"></a>
   <h3>Using a Configuration File</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -655,7 +666,7 @@
       </p>
   </div>
     
  -<a name="N102EF"></a><a name="config-internal"></a>
  +<a name="N10338"></a><a name="config-internal"></a>
   <h3>Setting the Configuration Programmatically</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -671,7 +682,7 @@
       </p>
   </div>
     
  -<a name="N1030E"></a><a name="multithreading"></a>
  +<a name="N10357"></a><a name="multithreading"></a>
   <h3>Multithreading FOP</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -694,14 +705,14 @@
   </ul>
   </div>
     
  -<a name="N10327"></a><a name="servlet-engine"></a>
  +<a name="N10370"></a><a name="servlet-engine"></a>
   <h3>Servlet Engines</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
         When using a servlet engine, there are potential CLASSPATH issues, and potential conflicts with existing XML/XSLT libraries.
   Servlet containers also often use their own classloaders for loading webapps, which can cause bugs and security problems.
       </p>
  -<a name="N10330"></a><a name="tomcat"></a>
  +<a name="N10379"></a><a name="tomcat"></a>
   <h4>Tomcat</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -709,7 +720,7 @@
   There are known bugs that must be addressed, particularly for Tomcat 4.0.3.
           </p>
   </div>
  -<a name="N1033A"></a><a name="websphere"></a>
  +<a name="N10383"></a><a name="websphere"></a>
   <h4>WebSphere 3.5</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -724,7 +735,7 @@
   </div>
   </div>
   
  -<a name="N10345"></a><a name="examples"></a>
  +<a name="N1038E"></a><a name="examples"></a>
   <h3>Examples</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -732,7 +743,7 @@
   In contrast of the examples above the examples here primarily use JAXP for 
   XML access. This may be easier to understand for people familiar with JAXP.
     </p>
  -<a name="N1034E"></a><a name="ExampleFO2PDF"></a>
  +<a name="N10397"></a><a name="ExampleFO2PDF"></a>
   <h4>ExampleFO2PDF.java</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -742,7 +753,7 @@
   <div align="center">
   <img class="figure" alt="Example XSL-FO to PDF" src="images/EmbeddingExampleFO2PDF.png"></div>
   </div>
  -<a name="N1035C"></a><a name="ExampleXML2FO"></a>
  +<a name="N103A5"></a><a name="ExampleXML2FO"></a>
   <h4>ExampleXML2FO.java</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -754,7 +765,7 @@
   <div align="center">
   <img class="figure" alt="Example XML to XSL-FO" src="images/EmbeddingExampleXML2FO.png"></div>
   </div>
  -<a name="N1036E"></a><a name="ExampleXML2PDF"></a>
  +<a name="N103B7"></a><a name="ExampleXML2PDF"></a>
   <h4>ExampleXML2PDF.java</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -774,7 +785,7 @@
   performance is significantly higher with SAX.
       </p>
   </div>
  -<a name="N1037F"></a><a name="ExampleObj2XML"></a>
  +<a name="N103C8"></a><a name="ExampleObj2XML"></a>
   <h4>ExampleObj2XML.java</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -807,7 +818,7 @@
   <a target="_blank" href="http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/xslt/3_generate.html">An older JAXP tutorial</a>).
       </p>
   </div>
  -<a name="N1039A"></a><a name="ExampleObj2PDF"></a>
  +<a name="N103E3"></a><a name="ExampleObj2PDF"></a>
   <h4>ExampleObj2PDF.java</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -820,7 +831,7 @@
   <div align="center">
   <img class="figure" alt="Example Java object to PDF (via XML and XSL-FO)" src="images/EmbeddingExampleObj2PDF.png"></div>
   </div>
  -<a name="N103A8"></a><a name="example-notes"></a>
  +<a name="N103F1"></a><a name="example-notes"></a>
   <h4>Final notes</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  
  
  
  1.8       +523 -463  xml-site/targets/fop/embedding.pdf
  
  	<<Binary file>>
  
  
  1.28      +2 -1      xml-site/targets/fop/examples.html
  
  Index: examples.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/examples.html,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- examples.html	23 Apr 2003 03:40:01 -0000	1.27
  +++ examples.html	29 Apr 2003 16:45:18 -0000	1.28
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Examples</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="examples.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="examples.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.23      +3 -2      xml-site/targets/fop/extensions.html
  
  Index: extensions.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/extensions.html,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- extensions.html	23 Apr 2003 03:40:01 -0000	1.22
  +++ extensions.html	29 Apr 2003 16:45:18 -0000	1.23
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Standard FOP Extensions</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="extensions.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="extensions.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -316,7 +317,7 @@
   <h3>SVG</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  -Please see the <a href="svg.html#svg">SVG documentation</a> for more details.
  +Please see the <a href="graphics.html#svg">SVG documentation</a> for more details.
           </p>
   </div>
         
  
  
  
  1.8       +37 -37    xml-site/targets/fop/extensions.pdf
  
  	<<Binary file>>
  
  
  1.27      +113 -110  xml-site/targets/fop/faq.html
  
  Index: faq.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/faq.html,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- faq.html	23 Apr 2003 03:40:01 -0000	1.26
  +++ faq.html	29 Apr 2003 16:45:18 -0000	1.27
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP FAQ</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="faq.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="faq.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -371,7 +372,7 @@
   <a name="blank-page-between-page-sequences-menu"></a><a href="#blank-page-between-page-sequences">Why does FOP insert a blank page between my page sequences?</a>
   </li>
   <li>
  -<a name="graphic-not-displayed-menu"></a><a href="#graphic-not-displayed">A graphic is not displayed.</a>
  +<a name="graphic-not-displayed-menu"></a><a href="#graphic-not-displayed">Why is my graphic not rendered?</a>
   </li>
   <li>
   <a name="png-fails-menu"></a><a href="#png-fails">My graphical images do not work properly.</a>
  @@ -431,7 +432,7 @@
   </ul>
   </li>
   <li>
  -<a name="part-svg-menu"></a><a href="#part-svg">5. Batik/SVG specific questions</a>
  +<a name="part-svg-menu"></a><a href="#part-svg">5. SVG specific questions</a>
   <ul>
   <li>
   <a name="svg-text-menu"></a><a href="#svg-text">The rendering of SVG text in my PDF is of poor quality.
  @@ -447,6 +448,9 @@
   <a name="svg-url-menu"></a><a href="#svg-url">I have problems with SVG referring to gradients etc. using
           "uri(#stuff)". I get a MalformedURLException.</a>
   </li>
  +<li>
  +<a name="svg-scaling-menu"></a><a href="#svg-scaling">Why is my SVG rendered at a size different from that specified in my fo:external-graphic element?</a>
  +</li>
   </ul>
   </li>
   <li>
  @@ -570,13 +574,13 @@
   </li>
   </ul>
   </div>
  -<a name="N1019E"></a>
  +<a name="N101A3"></a>
   <h3>Answers</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N101A1"></a><a name="part-general"></a>
  +<a name="N101A6"></a><a name="part-general"></a>
   <h4>1. General questions</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N101A5"></a><a name="fop-general"></a>
  +<a name="N101AA"></a><a name="fop-general"></a>
   <h5>1.1. What is FOP?<span style="float: right"><a href="#fop-general-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -590,7 +594,7 @@
           are supported, such as AWT, PCL, text and direct printing.
         </p>
   </div>
  -<a name="N101B4"></a><a name="fop-functions"></a>
  +<a name="N101B9"></a><a name="fop-functions"></a>
   <h5>1.2. What can I do with FOP?<span style="float: right"><a href="#fop-functions-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -607,7 +611,7 @@
             The library can be used in servlets and other Java applications.
           </p>
   </div>
  -<a name="N101C2"></a><a name="fop-acronym"></a>
  +<a name="N101C7"></a><a name="fop-acronym"></a>
   <h5>1.3. What does "FOP" stand for?<span style="float: right"><a href="#fop-acronym-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -616,7 +620,7 @@
             <strong>O</strong>bject <strong>P</strong>rocessor
           </p>
   </div>
  -<a name="N101D3"></a><a name="fop-other-apache"></a>
  +<a name="N101D8"></a><a name="fop-other-apache"></a>
   <h5>1.4. How does FOP interact with other Apache Projects?<span style="float: right"><a href="#fop-other-apache-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -631,7 +635,7 @@
             image</a> into a PDF document.
           </p>
   </div>
  -<a name="N101EA"></a><a name="xsl-def"></a>
  +<a name="N101EF"></a><a name="xsl-def"></a>
   <h5>1.5. What is XSL?<span style="float: right"><a href="#xsl-def-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -642,7 +646,7 @@
             <strong>L</strong>anguage.
           </p>
   </div>
  -<a name="N10203"></a><a name="xslfo"></a>
  +<a name="N10208"></a><a name="xslfo"></a>
   <h5>1.6. What is XSL-FO?<span style="float: right"><a href="#xslfo-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -665,7 +669,7 @@
             Synonyms: XSL FO, XSL (FO), XSL:FO, XSL-FO, Formatting Objects
           </p>
   </div>
  -<a name="N1021B"></a><a name="XSLT"></a>
  +<a name="N10220"></a><a name="XSLT"></a>
   <h5>1.7. What is XSLT?<span style="float: right"><a href="#XSLT-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -679,7 +683,7 @@
             Synonyms: XSL transformation, XSL:T, XSL style sheet.
           </p>
   </div>
  -<a name="N10229"></a><a name="contribute"></a>
  +<a name="N1022E"></a><a name="contribute"></a>
   <h5>1.8. How can I contribute?<span style="float: right"><a href="#contribute-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -688,10 +692,10 @@
           </p>
   </div>
   </div>
  -<a name="N10235"></a><a name="part-running"></a>
  +<a name="N1023A"></a><a name="part-running"></a>
   <h4>2. Problems running FOP</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N10239"></a><a name="no-page-master"></a>
  +<a name="N1023E"></a><a name="no-page-master"></a>
   <h5>2.1. I get the error: [ERROR]: 'master-reference' for
         'fo:page-sequence'matches no 'simple-page-master' or
         'page-sequence-master'<span style="float: right"><a href="#no-page-master-menu">^</a></span>
  @@ -712,7 +716,7 @@
             See also <a href="relnotes.html">release notes</a>.
           </p>
   </div>
  -<a name="N1024C"></a><a name="NoClassDefFound"></a>
  +<a name="N10251"></a><a name="NoClassDefFound"></a>
   <h5>2.2. I get a NoClassDefFound exception.<span style="float: right"><a href="#NoClassDefFound-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -739,7 +743,7 @@
             Java application, check the classpath of the application.
           </p>
   </div>
  -<a name="N10263"></a><a name="NoSuchMethodException"></a>
  +<a name="N10268"></a><a name="NoSuchMethodException"></a>
   <h5>2.3. I get a NoSuchMethodException or a NoSuchFieldException
         exception.<span style="float: right"><a href="#NoSuchMethodException-menu">^</a></span>
   </h5>
  @@ -755,7 +759,7 @@
             use a more recent version of Batik.
           </p>
   </div>
  -<a name="N1026E"></a><a name="OutOfMemoryException"></a>
  +<a name="N10273"></a><a name="OutOfMemoryException"></a>
   <h5>2.4. I get an OutOfMemoryException.<span style="float: right"><a href="#OutOfMemoryException-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -763,7 +767,7 @@
             See <a href="running.html#memory">FOP Memory</a>.
           </p>
   </div>
  -<a name="N1027A"></a><a name="MalformedURLException"></a>
  +<a name="N1027F"></a><a name="MalformedURLException"></a>
   <h5>2.5. I get a MalformedURLException.<span style="float: right"><a href="#MalformedURLException-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -793,7 +797,7 @@
             URL.
           </p>
   </div>
  -<a name="N102AA"></a><a name="NullPointerException"></a>
  +<a name="N102AF"></a><a name="NullPointerException"></a>
   <h5>2.6. I get an "[ERROR]: null", or a NullPointerException.<span style="float: right"><a href="#NullPointerException-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -824,13 +828,13 @@
             see more detailed information.
           </p>
   </div>
  -<a name="N102BF"></a><a name="not-implemented"></a>
  +<a name="N102C4"></a><a name="not-implemented"></a>
   <h5>2.7. FOP returns the message "[ERROR] object|property - 'x' is not implemented yet." When will it be implemented?<span style="float: right"><a href="#not-implemented-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
   <p>See the article "<a href="gethelp.html#compliance">Review FOP's Standards Compliance</a>".</p>
   </div>
  -<a name="N102CE"></a><a name="fop-hangs"></a>
  +<a name="N102D3"></a><a name="fop-hangs"></a>
   <h5>2.8. FOP hangs. FOP does not exit.<span style="float: right"><a href="#fop-hangs-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -854,7 +858,7 @@
             exec'ing FOP, use the library interface instead.
           </p>
   </div>
  -<a name="N102E4"></a><a name="boxoverflow"></a>
  +<a name="N102E9"></a><a name="boxoverflow"></a>
   <h5>2.9. FOP runs forever, writing lots of "&gt;" to the log.<span style="float: right"><a href="#boxoverflow-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -869,7 +873,7 @@
             remove keep-with-* properties.
           </p>
   </div>
  -<a name="N102EC"></a><a name="cannot-find-external-graphics"></a>
  +<a name="N102F1"></a><a name="cannot-find-external-graphics"></a>
   <h5>2.10. FOP cannot find a file for fo:external-graphics.<span style="float: right"><a href="#cannot-find-external-graphics-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -886,7 +890,7 @@
             working directory of the process which runs FOP.
           </p>
   </div>
  -<a name="N102FB"></a><a name="fonts-not-found"></a>
  +<a name="N10300"></a><a name="fonts-not-found"></a>
   <h5>2.11. FOP does not find my fonts.<span style="float: right"><a href="#fonts-not-found-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -903,10 +907,10 @@
           </p>
   </div>
   </div>
  -<a name="N10306"></a><a name="part-output"></a>
  +<a name="N1030B"></a><a name="part-output"></a>
   <h4>3. Problems with FOP output</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N1030A"></a><a name="blank-page-between-page-sequences"></a>
  +<a name="N1030F"></a><a name="blank-page-between-page-sequences"></a>
   <h5>3.1. Why does FOP insert a blank page between my page sequences?<span style="float: right"><a href="#blank-page-between-page-sequences-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -930,56 +934,49 @@
             <span class="codefrag">force-page-count="no-force"</span>.
           </p>
   </div>
  -<a name="N10322"></a><a name="graphic-not-displayed"></a>
  -<h5>3.2. A graphic is not displayed.<span style="float: right"><a href="#graphic-not-displayed-menu">^</a></span>
  +<a name="N10327"></a><a name="graphic-not-displayed"></a>
  +<h5>3.2. Why is my graphic not rendered?<span style="float: right"><a href="#graphic-not-displayed-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  -<p>
  -          The most common reason is that the file is not found because of an
  -          empty or wrong baseDir setting, spelling errors in the file name, in
  -          particular using the wrong case, or, if the image is retrieved over
  -          HTTP, the image was not delivered because of security settings in the
  -          server, missing cookies or other authorization information, or
  -          because of server misconfigurations.  One way to check this is to
  -          cut&amp;paste the source URL from the fo:external-graphic into the
  -          Location field of a browser <strong>on the machine where the FOP
  -          process will be running</strong>.
  -        </p>
  -<p>
  -          Several other possibilities:
  -        </p>
  +<p>Most commonly, the external file is not being found by FOP.
  +Check the following:</p>
   <ul>
             
  -<li>
  -            The graphic is too large to fit into the intended space.
  -          </li>
  +<li>Empty or wrong baseDir setting.</li>
             
  -<li>
  -            Some image format subclasses can't be handled, try to convert the
  -            graphic to a format subclass known to work. (Sorry, no list of
  -            formats known to work)
  -          </li>
  +<li>Spelling errors in the file name (including using the wrong case).</li>
             
  -<li>
  -            Something else obscures the graphic, for example stuff from a
  -            static content (very rare, but has happened).
  +<li>Security Problems (i.e. image was not delivered because FOP is not allowed to read the file).
  +This is especially a problem if the external file is retrieved over HTTP.
  +Possible issues include security settings on the server, server configuration, and missing cookies or other authorization information.
  +Any easy way to check this is to cut&amp;paste the source URL from the fo:external-graphic into the Location field of a browser <strong>on the machine where the FOP process will be running</strong>.</li>
  +        
  +</ul>
  +<p>Other possibilities:</p>
  +<ul>
  +          
  +<li>The image format is not supported or not supported completely. See <a href="graphics.html">FOP Graphics Formats</a> for a list of supported formats and related issues.</li>
  +          
  +<li>The graphic may be too large to fit into the intended space.</li>
  +          
  +<li>There may be something (static content) that is obscuring the graphic. (This is very rare).
             </li>
           
   </ul>
   </div>
  -<a name="N1033C"></a><a name="png-fails"></a>
  +<a name="N10351"></a><a name="png-fails"></a>
   <h5>3.3. My graphical images do not work properly.<span style="float: right"><a href="#png-fails-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  -<p>See <a href="svg.html">Graphical Formats</a>.</p>
  +<p>See <a href="graphics.html">FOP Graphics Formats</a> for a list of supported formats and related issues.</p>
   </div>
  -<a name="N10348"></a><a name="graphic-resolution"></a>
  +<a name="N1035D"></a><a name="graphic-resolution"></a>
   <h5>3.4. Why is my graphic rendered at a different resolution than it was created?<span style="float: right"><a href="#graphic-resolution-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
   <p>See <a href="graphics.html#resolution">Graphics Resolution</a>.</p>
   </div>
  -<a name="N10354"></a><a name="keep-with"></a>
  +<a name="N10369"></a><a name="keep-with"></a>
   <h5>3.5. Keep-with-next, keep-with-previous, keep-together
         don't work.<span style="float: right"><a href="#keep-with-menu">^</a></span>
   </h5>
  @@ -1014,7 +1011,7 @@
     &lt;/fo:table-body&gt;
   &lt;/fo:table&gt;</pre>
   </div>
  -<a name="N10366"></a><a name="table-missing"></a>
  +<a name="N1037B"></a><a name="table-missing"></a>
   <h5>3.6. My tables are missing, or missing their content.<span style="float: right"><a href="#table-missing-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1030,7 +1027,7 @@
             fo:table-with-caption elements, so watch out.
           </p>
   </div>
  -<a name="N10371"></a><a name="cells-overflow"></a>
  +<a name="N10386"></a><a name="cells-overflow"></a>
   <h5>3.7. Text overflowing table cells and the like is not clipped. Long
           text flows into adjacent cells/block, obscuring stuff there.<span style="float: right"><a href="#cells-overflow-menu">^</a></span>
   </h5>
  @@ -1064,7 +1061,7 @@
             archive</a> for how to perform these tasks.
           </p>
   </div>
  -<a name="N10393"></a><a name="page-number-align"></a>
  +<a name="N103A8"></a><a name="page-number-align"></a>
   <h5>3.8. Page numbers are not properly right aligned.<span style="float: right"><a href="#page-number-align-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1081,7 +1078,7 @@
             problem completely.
           </p>
   </div>
  -<a name="N1039E"></a><a name="hypenation-fails"></a>
  +<a name="N103B3"></a><a name="hypenation-fails"></a>
   <h5>3.9. Hyphenation does not work.<span style="float: right"><a href="#hypenation-fails-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1092,10 +1089,10 @@
           </p>
   </div>
   </div>
  -<a name="N103A6"></a><a name="part-embedding"></a>
  +<a name="N103BB"></a><a name="part-embedding"></a>
   <h4>4. Embedding FOP. Using FOP in a servlet.</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N103AA"></a><a name="servlet"></a>
  +<a name="N103BF"></a><a name="servlet"></a>
   <h5>4.1. How do I use FOP in a servlet?<span style="float: right"><a href="#servlet-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1103,7 +1100,7 @@
             See <a href="embedding.html#servlet">Using FOP in a Servlet</a>.
           </p>
   </div>
  -<a name="N103B6"></a><a name="servlet-with-xslt"></a>
  +<a name="N103CB"></a><a name="servlet-with-xslt"></a>
   <h5>4.2. How do I use FOP in a servlet with an XSLT
         transformation?<span style="float: right"><a href="#servlet-with-xslt-menu">^</a></span>
   </h5>
  @@ -1112,7 +1109,7 @@
             See <a href="embedding.html#servlet-transform">Using FOP in a Servlet with XSLT Transformation</a>.
           </p>
   </div>
  -<a name="N103C2"></a><a name="servlet-xslt-params"></a>
  +<a name="N103D7"></a><a name="servlet-xslt-params"></a>
   <h5>4.3. How do I pass parameters to the XSLT transformation?<span style="float: right"><a href="#servlet-xslt-params-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1120,7 +1117,7 @@
             See <a href="embedding.html#servlet-transform">Using FOP in a Servlet with XSLT Transformation</a>.
           </p>
   </div>
  -<a name="N103CE"></a><a name="servlet-nonstd-fonts"></a>
  +<a name="N103E3"></a><a name="servlet-nonstd-fonts"></a>
   <h5>4.4. How do I use my own fonts when running FOP from a
         servlet?<span style="float: right"><a href="#servlet-nonstd-fonts-menu">^</a></span>
   </h5>
  @@ -1130,7 +1127,7 @@
   See <a href="#usercfg">loading the user configuration file</a> for further details.
           </p>
   </div>
  -<a name="N103DD"></a><a name="servlet-baseDir"></a>
  +<a name="N103F2"></a><a name="servlet-baseDir"></a>
   <h5>4.5. How do I set the baseDir property in a servlet environment?<span style="float: right"><a href="#servlet-baseDir-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1138,7 +1135,7 @@
             See <a href="embedding.html#config-internal">Setting the Configuration Programmatically</a>.
           </p>
   </div>
  -<a name="N103E9"></a><a name="usercfg"></a>
  +<a name="N103FE"></a><a name="usercfg"></a>
   <h5>4.6. How do I use a user configuration file from a servlet?<span style="float: right"><a href="#usercfg-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1146,7 +1143,7 @@
             See <a href="embedding.html#config-external">Using a Configuration File in an Embedded App</a>.
           </p>
   </div>
  -<a name="N103F5"></a><a name="servlet-NoClassDefFound"></a>
  +<a name="N1040A"></a><a name="servlet-NoClassDefFound"></a>
   <h5>4.7. I keep getting NoClassDefFound and other exceptions. How do I
           get FOP working for various servlet engines?<span style="float: right"><a href="#servlet-NoClassDefFound-menu">^</a></span>
   </h5>
  @@ -1155,7 +1152,7 @@
             See <a href="embedding.html#servlet-engine">Servlet Engines</a>.
           </p>
   </div>
  -<a name="N10401"></a><a name="multithreaded"></a>
  +<a name="N10416"></a><a name="multithreaded"></a>
   <h5>4.8. Can FOP be used in multithreaded environments?<span style="float: right"><a href="#multithreaded-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1164,17 +1161,17 @@
           </p>
   </div>
   </div>
  -<a name="N1040D"></a><a name="part-svg"></a>
  -<h4>5. Batik/SVG specific questions</h4>
  +<a name="N10422"></a><a name="part-svg"></a>
  +<h4>5. SVG specific questions</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N10411"></a><a name="svg-text"></a>
  +<a name="N10426"></a><a name="svg-text"></a>
   <h5>5.1. The rendering of SVG text in my PDF is of poor quality.
   Can I control this?<span style="float: right"><a href="#svg-text-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  -<p>See <a href="svg.html#svg-pdf-text">Placing SVG Text into PDF</a>.</p>
  +<p>See <a href="graphics.html#svg-pdf-text">Placing SVG Text into PDF</a>.</p>
   </div>
  -<a name="N1041D"></a><a name="svg-headless"></a>
  +<a name="N10432"></a><a name="svg-headless"></a>
   <h5>5.2. How do I use FOP with SVG on headless servers?<span style="float: right"><a href="#svg-headless-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1207,7 +1204,7 @@
           
   </ul>
   </div>
  -<a name="N10438"></a><a name="svghangs"></a>
  +<a name="N1044D"></a><a name="svghangs"></a>
   <h5>5.3. FOP does not exit if a SVG is included.<span style="float: right"><a href="#svghangs-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1217,7 +1214,7 @@
             System.exit(0) somewhere.
           </p>
   </div>
  -<a name="N10440"></a><a name="svg-url"></a>
  +<a name="N10455"></a><a name="svg-url"></a>
   <h5>5.4. I have problems with SVG referring to gradients etc. using
           "uri(#stuff)". I get a MalformedURLException.<span style="float: right"><a href="#svg-url-menu">^</a></span>
   </h5>
  @@ -1270,11 +1267,17 @@
   <p>See also <a href="#MalformedURL">MalformedURLException</a>
   </p>
   </div>
  +<a name="N10481"></a><a name="svg-scaling"></a>
  +<h5>5.5. Why is my SVG rendered at a size different from that specified in my fo:external-graphic element?<span style="float: right"><a href="#svg-scaling-menu">^</a></span>
  +</h5>
  +<div style="margin-left: 15 ; border: 2px">
  +<p>See <a href="graphics.html#svg-scaling">SVG Scaling</a>.</p>
  +</div>
   </div>
  -<a name="N1046C"></a><a name="part-pdf"></a>
  +<a name="N1048D"></a><a name="part-pdf"></a>
   <h4>6. PDF specific (includes Acrobat peculiarities)</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N10470"></a><a name="pdf-embed-font"></a>
  +<a name="N10491"></a><a name="pdf-embed-font"></a>
   <h5>6.1. How do I embed fonts in PDF?<span style="float: right"><a href="#pdf-embed-font-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1283,7 +1286,7 @@
             about embedding fonts.
           </p>
   </div>
  -<a name="N1047C"></a><a name="pdf-characters"></a>
  +<a name="N1049D"></a><a name="pdf-characters"></a>
   <h5>6.2. Some characters are not displayed, or displayed incorrectly, or
         displayed as &ldquo;#&rdquo;.<span style="float: right"><a href="#pdf-characters-menu">^</a></span>
   </h5>
  @@ -1308,13 +1311,13 @@
           </p>
   <pre class="code">&lt;fo:inline font-family="Helvetica"&gt;&amp;#x2205;&lt;/fo:inline&gt;</pre>
   </div>
  -<a name="N1049A"></a><a name="pdf-postprocess"></a>
  +<a name="N104BB"></a><a name="pdf-postprocess"></a>
   <h5>6.3. What tools are available for post-processing my PDF document?<span style="float: right"><a href="#pdf-postprocess-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
   <p>See <a href="output.html#pdf-postprocess">PDF Post-processing</a>.</p>
   </div>
  -<a name="N104A6"></a><a name="pdf-security"></a>
  +<a name="N104C7"></a><a name="pdf-security"></a>
   <h5>6.4. How do I add security features (encryption, disable printing)
         to my PDF document?<span style="float: right"><a href="#pdf-security-menu">^</a></span>
   </h5>
  @@ -1324,20 +1327,20 @@
             See also <a href="output.html#pdf-postprocess">PDF Post-processing</a>.
           </p>
   </div>
  -<a name="N104B6"></a><a name="pdf-doc-properties"></a>
  +<a name="N104D7"></a><a name="pdf-doc-properties"></a>
   <h5>6.5. How do I add document properties (title, author, etc.) to my
         PDF document?<span style="float: right"><a href="#pdf-doc-properties-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
   <p>See <a href="output.html#pdf-postprocess">PDF Post-processing</a>.</p>
   </div>
  -<a name="N104C2"></a><a name="pdf-watermark"></a>
  +<a name="N104E3"></a><a name="pdf-watermark"></a>
   <h5>6.6. How do I add watermarks to my PDF document?<span style="float: right"><a href="#pdf-watermark-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
   <p>See <a href="output.html#pdf-watermark">PDF Watermarks</a>.</p>
   </div>
  -<a name="N104CE"></a><a name="pdf-print-contortion"></a>
  +<a name="N104EF"></a><a name="pdf-print-contortion"></a>
   <h5>6.7. The PDF is printed contorted!<span style="float: right"><a href="#pdf-print-contortion-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1349,7 +1352,7 @@
             settings too.
           </p>
   </div>
  -<a name="N104D6"></a><a name="pdf-bookmark-display"></a>
  +<a name="N104F7"></a><a name="pdf-bookmark-display"></a>
   <h5>6.8. How do I control the Acrobat bookmark display?<span style="float: right"><a href="#pdf-bookmark-display-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1360,10 +1363,10 @@
           </p>
   </div>
   </div>
  -<a name="N104E2"></a><a name="part-iex"></a>
  +<a name="N10503"></a><a name="part-iex"></a>
   <h4>7. IEx specific stuff</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N104E6"></a><a name="iex-servlet-multiple"></a>
  +<a name="N10507"></a><a name="iex-servlet-multiple"></a>
   <h5>7.1. The FOP servlet is called multiple times!<span style="float: right"><a href="#iex-servlet-multiple-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1399,7 +1402,7 @@
           
   </ul>
   </div>
  -<a name="N10506"></a><a name="iex-pdf-print-from-browser"></a>
  +<a name="N10527"></a><a name="iex-pdf-print-from-browser"></a>
   <h5>7.2. How do I print PDF directly from the browser?<span style="float: right"><a href="#iex-pdf-print-from-browser-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1423,10 +1426,10 @@
           </p>
   </div>
   </div>
  -<a name="N10517"></a><a name="part-input"></a>
  +<a name="N10538"></a><a name="part-input"></a>
   <h4>8. General questions regarding XSLT, XSLFO, and basic XML</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N1051B"></a><a name="fo-center"></a>
  +<a name="N1053C"></a><a name="fo-center"></a>
   <h5>8.1. (FO) How do I vertically center an image or a table (or
         whatever)?<span style="float: right"><a href="#fo-center-menu">^</a></span>
   </h5>
  @@ -1435,7 +1438,7 @@
             See <a href="fo.html#fo-center-vertical">XSL-FO Vertical Centering</a>.
           </p>
   </div>
  -<a name="N10527"></a><a name="fo-center-table-horizon"></a>
  +<a name="N10548"></a><a name="fo-center-table-horizon"></a>
   <h5>8.2. (FO) How do I center a table horizontally?<span style="float: right"><a href="#fo-center-table-horizon-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1443,7 +1446,7 @@
             See <a href="fo.html#fo-center-table-horizon">XSL-FO Horizontal Centering (Tables)</a>.
           </p>
   </div>
  -<a name="N10533"></a><a name="fo-page-outer"></a>
  +<a name="N10554"></a><a name="fo-page-outer"></a>
   <h5>8.3. (FO) How to get page numbers printed on the "outer side" of the
           page (for books, for example)?<span style="float: right"><a href="#fo-page-outer-menu">^</a></span>
   </h5>
  @@ -1452,7 +1455,7 @@
             See <a href="fo.html#fo-oddeven">Recto/Verso Static Content Differences</a>.
           </p>
   </div>
  -<a name="N1053F"></a><a name="oddeven"></a>
  +<a name="N10560"></a><a name="oddeven"></a>
   <h5>8.4. (FO) How do I use different static content for odd and even
         pages?<span style="float: right"><a href="#oddeven-menu">^</a></span>
   </h5>
  @@ -1461,7 +1464,7 @@
             See <a href="fo.html#fo-oddeven">Recto/Verso Static Content Differences</a>.
           </p>
   </div>
  -<a name="N1054B"></a><a name="fo-first-page-header"></a>
  +<a name="N1056C"></a><a name="fo-first-page-header"></a>
   <h5>8.5. (FO) How do I get a special header on the first page?<span style="float: right"><a href="#fo-first-page-header-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1469,7 +1472,7 @@
             See <a href="fo.html#fo-first-page">Making the First Page Special</a>.
           </p>
   </div>
  -<a name="N10557"></a><a name="fo-omit-headers"></a>
  +<a name="N10578"></a><a name="fo-omit-headers"></a>
   <h5>8.6. (FO) How do I omit my headers on a blank page? How do I write
         "This page is left blank" on an intentionally blank page?<span style="float: right"><a href="#fo-omit-headers-menu">^</a></span>
   </h5>
  @@ -1478,7 +1481,7 @@
             See <a href="fo.html#fo-blank-pages">Blank Pages</a>.
           </p>
   </div>
  -<a name="N10563"></a><a name="fo-special-symbols"></a>
  +<a name="N10584"></a><a name="fo-special-symbols"></a>
   <h5>8.7. (FO) How do I print an Euro sign, a checkbox or other some other
         special symbols?<span style="float: right"><a href="#fo-special-symbols-menu">^</a></span>
   </h5>
  @@ -1487,7 +1490,7 @@
             See <a href="fo.html#xml-special-chars">Special Characters</a>.
           </p>
   </div>
  -<a name="N1056F"></a><a name="fo-preformat"></a>
  +<a name="N10590"></a><a name="fo-preformat"></a>
   <h5>8.8. (FO) How do I keep linebreaks and hard spaces? How do I get
           preformatted text displayed as expected?<span style="float: right"><a href="#fo-preformat-menu">^</a></span>
   </h5>
  @@ -1496,7 +1499,7 @@
             See <a href="fo.html#fo-preformat">Preformatting Content</a>.
           </p>
   </div>
  -<a name="N1057B"></a><a name="fo-total-pages"></a>
  +<a name="N1059C"></a><a name="fo-total-pages"></a>
   <h5>8.9. (FO) How do I print the total number of pages, for example "page 1
         of 12"<span style="float: right"><a href="#fo-total-pages-menu">^</a></span>
   </h5>
  @@ -1505,7 +1508,7 @@
             See <a href="fo.html#fo-total-pages">Total Document Pages</a>.
           </p>
   </div>
  -<a name="N10587"></a><a name="fo-region-overlap"></a>
  +<a name="N105A8"></a><a name="fo-region-overlap"></a>
   <h5>8.10. (FO) The header overlaps body content. The body extends into
         the footer.<span style="float: right"><a href="#fo-region-overlap-menu">^</a></span>
   </h5>
  @@ -1514,7 +1517,7 @@
             See <a href="fo.html#fo-region-align">Aligning Regions</a>.
           </p>
   </div>
  -<a name="N10593"></a><a name="fo-lines"></a>
  +<a name="N105B4"></a><a name="fo-lines"></a>
   <h5>8.11. (FO) How do I get lines in the document, as separators, side
         bars or folding marks?<span style="float: right"><a href="#fo-lines-menu">^</a></span>
   </h5>
  @@ -1523,7 +1526,7 @@
             See <a href="fo.html#fo-lines">Drawing Lines</a>.
           </p>
   </div>
  -<a name="N1059F"></a><a name="fo-validate"></a>
  +<a name="N105C0"></a><a name="fo-validate"></a>
   <h5>8.12. (FO) How do I validate my FO document?<span style="float: right"><a href="#fo-validate-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1531,7 +1534,7 @@
             See <a href="fo.html#fo-validate">Validating XSL-FO</a>.
           </p>
   </div>
  -<a name="N105AB"></a><a name="xml-non-breaking-space"></a>
  +<a name="N105CC"></a><a name="xml-non-breaking-space"></a>
   <h5>8.13. (XML) How do I get a non-breaking space in FO? There are complaints about &amp;nbsp;.<span style="float: right"><a href="#xml-non-breaking-space-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1539,7 +1542,7 @@
             See <a href="fo.html#xml-special-chars">XML Special Characters</a>.
           </p>
   </div>
  -<a name="N105BA"></a><a name="xml-undefined-entities"></a>
  +<a name="N105DB"></a><a name="xml-undefined-entities"></a>
   <h5>8.14. (XML) How do I enter special characters in XML? There are complaints about undefined entities, such as &amp;uuml;, which work in HTML. <span style="float: right"><a href="#xml-undefined-entities-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1547,7 +1550,7 @@
             See <a href="fo.html#xml-special-chars">XML Special Characters</a>.
           </p>
   </div>
  -<a name="N105C9"></a><a name="xml-illegal-entities"></a>
  +<a name="N105EA"></a><a name="xml-illegal-entities"></a>
   <h5>8.15. (XML) There are complaints about illegal characters and entities
         in the input.<span style="float: right"><a href="#xml-illegal-entities-menu">^</a></span>
   </h5>
  @@ -1556,7 +1559,7 @@
             See <a href="fo.html#xml-entity-chars">XML Entity Characters</a>.
           </p>
   </div>
  -<a name="N105D5"></a><a name="xml-illegal-chars"></a>
  +<a name="N105F6"></a><a name="xml-illegal-chars"></a>
   <h5>8.16. (XML) There are complaints about illegal bytes or characters in
         the input. There are odd characters in the result.<span style="float: right"><a href="#xml-illegal-chars-menu">^</a></span>
   </h5>
  @@ -1566,10 +1569,10 @@
           </p>
   </div>
   </div>
  -<a name="N105E1"></a><a name="part-help"></a>
  +<a name="N10602"></a><a name="part-help"></a>
   <h4>9. General suggestions. How to solve problems.</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N105E5"></a><a name="bugs"></a>
  +<a name="N10606"></a><a name="bugs"></a>
   <h5>9.1. I think I have found a bug in FOP. What should I do?<span style="float: right"><a href="#bugs-menu">^</a></span>
   </h5>
   <div style="margin-left: 15 ; border: 2px">
  @@ -1578,7 +1581,7 @@
             bugs already reported and how to report new ones.
           </p>
   </div>
  -<a name="N105F1"></a><a name="postquestions"></a>
  +<a name="N10612"></a><a name="postquestions"></a>
   <h5>9.2. I have questions that are not addressed in this FAQ. Where
         should I post them?<span style="float: right"><a href="#postquestions-menu">^</a></span>
   </h5>
  
  
  
  1.15      +5676 -5389xml-site/targets/fop/faq.pdf
  
  	<<Binary file>>
  
  
  1.3       +2 -1      xml-site/targets/fop/fo.html
  
  Index: fo.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/fo.html,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- fo.html	23 Apr 2003 03:40:03 -0000	1.2
  +++ fo.html	29 Apr 2003 16:45:21 -0000	1.3
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>XSL-FO Input</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="fo.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="fo.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.26      +3 -2      xml-site/targets/fop/fonts.html
  
  Index: fonts.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/fonts.html,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- fonts.html	23 Apr 2003 03:40:03 -0000	1.25
  +++ fonts.html	29 Apr 2003 16:45:21 -0000	1.26
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Fonts</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="fonts.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="fonts.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -527,7 +528,7 @@
         When embedding PostScript fonts, the entire font is always embedded.
       </p>
   <p>
  -      When embedding TrueType fonts, a new font, containing only the glyphs used, is created from the original font and embedded in the pdf.
  +      When embedding TrueType fonts (ttf) or TrueType Collections (ttc), a new font, containing only the glyphs used, is created from the original font and embedded in the pdf.
   Currently, this embedded font contains only the minimum data needed to be embedded in a pdf document, and does not contain any codepage information.
   The PDF document contains indexes to the glyphs in the font instead of to encoded characters.
   While the document will be displayed correctly, the net effect of this is that searching, indexing, and cut-and-paste will not work properly.
  
  
  
  1.7       +43 -43    xml-site/targets/fop/fonts.pdf
  
  	<<Binary file>>
  
  
  1.16      +2 -1      xml-site/targets/fop/gethelp.html
  
  Index: gethelp.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/gethelp.html,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- gethelp.html	23 Apr 2003 03:40:03 -0000	1.15
  +++ gethelp.html	29 Apr 2003 16:45:22 -0000	1.16
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Getting Help</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="gethelp.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="gethelp.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.2       +65 -30    xml-site/targets/fop/graphics.html
  
  Index: graphics.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/graphics.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- graphics.html	23 Apr 2003 03:40:03 -0000	1.1
  +++ graphics.html	29 Apr 2003 16:45:22 -0000	1.2
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP Graphics Formats</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="graphics.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="graphics.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -312,6 +313,9 @@
   </ul>
   </li>
   <li>
  +<a href="#eps">EPS</a>
  +</li>
  +<li>
   <a href="#jpeg">JPEG</a>
   </li>
   <li>
  @@ -330,6 +334,9 @@
   <a href="#svg-pdf-text">Placing SVG Text into PDF</a>
   </li>
   <li>
  +<a href="#svg-scaling">Scaling</a>
  +</li>
  +<li>
   <a href="#svg-problems">Known Problems</a>
   </li>
   </ul>
  @@ -357,7 +364,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">BMP</td>
  +<td colspan="1" rowspan="1">BMP (Microsoft Windows Bitmap)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a> or <a href="#jai">JAI</a></td>
           
  @@ -373,7 +380,15 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">GIF</td>
  +<td colspan="1" rowspan="1">EPS (Encapsulated PostScript)</td>
  +          <td colspan="1" rowspan="1">metafile (both bitmap and vector), probably most frequently used for vector drawings</td>
  +          <td colspan="1" rowspan="1">FOP native (limited support)</td>
  +        
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1">GIF (Graphics Interchange Format)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#native">FOP native</a></td>
           
  @@ -397,7 +412,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1"><a href="#jpeg">JPEG</a></td>
  +<td colspan="1" rowspan="1"><a href="#jpeg">JPEG (Joint Photographic Experts Group)</a></td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#native">FOP native</a></td>
           
  @@ -405,7 +420,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">PCX</td>
  +<td colspan="1" rowspan="1">PCX (PC Paintbrush)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a></td>
           
  @@ -421,7 +436,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">PNG</td>
  +<td colspan="1" rowspan="1">PNG (Portable Network Graphic)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a> or <a href="#jai">JAI</a></td>
           
  @@ -429,7 +444,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">PNM</td>
  +<td colspan="1" rowspan="1">PNM (Portable aNyMap Utilities, part of the Portable Bitmap Utilies, aka pbmplus. PNM is a superset encompassing PBM or Portable Bitmap, PGM or Portable Grayscale, and PPM or Portable Pixmap.)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jai">JAI</a></td>
           
  @@ -445,7 +460,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">Sunraster</td>
  +<td colspan="1" rowspan="1">RAS (Sunraster)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a></td>
           
  @@ -453,7 +468,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1"><a href="#svg">SVG</a></td>
  +<td colspan="1" rowspan="1"><a href="#svg">SVG</a> (Scalable Vector Graphics)</td>
             <td colspan="1" rowspan="1">vector (with embedded bitmaps)</td>
             <td colspan="1" rowspan="1"><a href="#batik">Batik</a></td>
           
  @@ -461,7 +476,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">Targa</td>
  +<td colspan="1" rowspan="1">TGA (Targa)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a></td>
           
  @@ -469,7 +484,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">TIFF</td>
  +<td colspan="1" rowspan="1">TIFF (Tag Image Format File)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a> or <a href="#jai">JAI</a></td>
           
  @@ -477,7 +492,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">XBM</td>
  +<td colspan="1" rowspan="1">XBM (X BitMap)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a></td>
           
  @@ -485,7 +500,7 @@
           
   <tr>
             
  -<td colspan="1" rowspan="1">XPM</td>
  +<td colspan="1" rowspan="1">XPM (X PixMap)</td>
             <td colspan="1" rowspan="1">bitmap</td>
             <td colspan="1" rowspan="1"><a href="#jimi">JIMI</a></td>
           
  @@ -494,17 +509,17 @@
   </table>
   </div>
       
  -<a name="N10347"></a><a name="packages"></a>
  +<a name="N1035A"></a><a name="packages"></a>
   <h3>Graphics Packages</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N1034D"></a><a name="native"></a>
  +<a name="N10360"></a><a name="native"></a>
   <h4>FOP Native</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
             FOP has native ability to handle some graphic file formats.
           </p>
   </div>
  -<a name="N10357"></a><a name="jimi"></a>
  +<a name="N1036A"></a><a name="jimi"></a>
   <h4>JIMI</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -512,7 +527,7 @@
   Then, copy the file "JimiProClasses.zip" from the archive to xml-fop/lib/jimi-1.0.jar. Please note that FOP binary distributions are compiled with JIMI support, so there is no need for you to build FOP to add the support. If jimi-1.0.jar is installed in the right place, it will automatically be used by FOP, otherwise it will not.
           </p>
   </div>
  -<a name="N10365"></a><a name="jai"></a>
  +<a name="N10378"></a><a name="jai"></a>
   <h4>JAI</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -521,30 +536,41 @@
   JAI is much faster than JIMI, but is not available for all platforms. See <a href="http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html#platforms">What platforms are supported?</a> on the JAI FAQ page for more details.
           </p>
   </div>
  -<a name="N10377"></a><a name="batik"></a>
  +<a name="N1038A"></a><a name="batik"></a>
   <h4>Batik</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<p>
  -          FOP distributions include a batik.jar file. No installation is required.
  -        </p>
  +<p>Current FOP distributions include a distribution of the Apache Software Foundation's <a target="_top" href="http://xml.apache.org/batik">Batik</a> version 1.5beta4. No installation is required. Because Batik's API changes frequently, it is highly recommended that you use this version with FOP.</p>
   </div>
   </div>
       
  -<a name="N10382"></a><a name="jpeg"></a>
  +<a name="N10399"></a><a name="eps"></a>
  +<h3>EPS</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>FOP provides support for two output targets:</p>
  +<ul>
  +        
  +<li>PostScript (full support).</li>
  +        
  +<li>PDF (partial support). FOP embeds the EPS file into the PDF, but currently does not do so completely correctly. PostScript devices (including ghostscript) will render the EPS correctly, but Acrobat Reader will not currently display it.</li>
  +      
  +</ul>
  +</div>
  +    
  +<a name="N103AC"></a><a name="jpeg"></a>
   <h3>JPEG</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Not all variants of JPEG are supported, especially those containing unusual color lookup tables and color profiles. If you have trouble with a JPEG image in FOP, try opening it with an image processing program (such as Photoshop or Gimp) and then saving it. Specifying 24-bit color output may also help.
         </p>
   </div>
       
  -<a name="N1038C"></a><a name="svg"></a>
  +<a name="N103B6"></a><a name="svg"></a>
   <h3>SVG</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N10392"></a><a name="svg-intro"></a>
  +<a name="N103BC"></a><a name="svg-intro"></a>
   <h4>Introduction</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  -FOP uses the SVG library from <a href="http://xml.apache.org/batik/">Batik</a> to handle SVG.
  +FOP uses <a href="#batik">Batik</a> for SVG support.
   This format can be handled as an <span class="codefrag">fo:instream-foreign-object</span> or in a separate
   file referenced with <span class="codefrag">fo:external-graphic</span>. Either way the SVG document will be
   read in and converted into a DOM in Batik. This DOM will then be used by the renderer to
  @@ -559,7 +585,7 @@
   PDF markup which is placed into the current PDF document.
           </p>
   </div>
  -<a name="N103AC"></a><a name="svg-pdf-conversion"></a>
  +<a name="N103D6"></a><a name="svg-pdf-conversion"></a>
   <h4>Converting SVG to a PDF Document</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -586,7 +612,7 @@
   how transcoders work.
           </p>
   </div>
  -<a name="N103CD"></a><a name="svg-pdf-graphics"></a>
  +<a name="N103F7"></a><a name="svg-pdf-graphics"></a>
   <h4>Placing SVG Graphics into PDF</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -606,7 +632,7 @@
   correctly.
           </p>
   </div>
  -<a name="N103DD"></a><a name="svg-pdf-text"></a>
  +<a name="N10407"></a><a name="svg-pdf-text"></a>
   <h4>Placing SVG Text into PDF</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>If possible, Batik will use normal PDF text when inserting text. It does
  @@ -648,7 +674,15 @@
   The Acrobat viewer has both "smooth line art" and "smooth text" settings that may need to be set for SVG images to be displayed nicely on your screen (see Edit / Preferences / Display).
   This setting will not affect the printing of your document, which should be OK in any case, but will only affect the quality of the screen display.</p>
   </div>
  -<a name="N10410"></a><a name="svg-problems"></a>
  +<a name="N1043A"></a><a name="svg-scaling"></a>
  +<h4>Scaling</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Currently, SVG images are rendered with the dimensions specified <em>in the SVG file</em>, within the viewport specified in the fo:external-graphic element.
  +For everything to work properly, the two should be equal.
  +The SVG standard leaves this issue as an implementation detail.
  +FOP will probably implement a scaling mechanism in the future.</p>
  +</div>
  +<a name="N10447"></a><a name="svg-problems"></a>
   <h4>Known Problems</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
  @@ -690,7 +724,7 @@
   </div>
   </div>
       
  -<a name="N1042D"></a><a name="resolution"></a>
  +<a name="N10464"></a><a name="resolution"></a>
   <h3>Graphics Resolution</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Some bitmapped image file formats store a dots-per-inch (dpi) or other resolution value. Since PDF and most output formats do not have a concept of resolution, but only of absolute image units (i.e. pixels) FOP ignores the resolution values as well. Instead, FOP uses the dimensions of the image as specified in the fo:external-graphic element to render the image:</p>
  @@ -703,6 +737,7 @@
   <li>If both dimensions are given, FOP simply renders the image in that space. For example, suppose a graphic 300 pixels wide and 400 pixels high, for which content-width = "3in" and content-height = "4in". FOP will render the graphic at that size, with an apparent resolution of 100 dpi.</li>
         
   </ul>
  +<p>If you need a higher apparent output resolution for bitmapped images, first make sure that at least one dimension of the image is defined in your XSL-FO input. Apart from that, resolution problems are in the image file itself, and must be corrected there: use or create a higher-resolution image file.</p>
   <div class="frame note">
   <div class="label">Note</div>
   <div class="content">The explanation above describes only the basic default behavior. There are other attributes of the fo:external-graphic element that can affect the behavior described above.</div>
  
  
  
  1.2       +643 -449  xml-site/targets/fop/graphics.pdf
  
  	<<Binary file>>
  
  
  1.47      +11 -25    xml-site/targets/fop/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/index.html,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- index.html	23 Apr 2003 03:40:03 -0000	1.46
  +++ index.html	29 Apr 2003 16:45:22 -0000	1.47
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="index.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="index.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -323,41 +324,28 @@
       </p>
   <p>FOP is proud to be part of <a href="http://xml.apache.org">Apache's XML project</a>.
       </p>
  -<p>Users can subscribe to fop-user@xml.apache.org by sending an email
  -        to <a href="mailto:fop-user-subscribe.at.xml.apache.org">fop-user-subscribe@xml.apache.org</a>
  -        this is where user specific topics are discussed.
  -     </p>
   </div>
   
     
  -<a name="N101F7"></a><a name="demo"></a>
  +<a name="N101F0"></a><a name="demo"></a>
   <h3>Demonstration</h3>
   <div style="margin-left: 0 ; border: 2px">
   <div align="center">
   <img class="figure" alt="Formatting Diagram" src="images/layout.jpg" height="260" width="480"></div>
   <p>
  -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 and an external graphic (an svg document in this example).
  -It also includes a footnote on the first page and a table that goes across both pages.
  +This image is a demonstration of a real 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, a footnote on the first page, and a table that goes across both pages.
   </p>
   <p>
  -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.
  -</p>
  -<p>
  -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.
  -</p>
  +FOP uses the standard XSL-FO file format as input, lays the content out into pages, then renders it to the requested output.
  +One great advantage to using XSL-FO as input is that XSL-FO is itself an XML file, which means that it can be conveniently created from a variety of sources.
  +The most common method is to convert semantic XML to XSL-FO, using an XSLT transformation.</p>
   </div>
     
  -<a name="N1020D"></a><a name="objectives"></a>
  +<a name="N10203"></a><a name="objectives"></a>
   <h3>FOP Objectives</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>The goals of the Apache XML FOP Project are to deliver an XSL FO-&gt;PDF formatter that is compliant to at least the Basic
  +<p>The goals of the Apache XML FOP Project are to deliver an XSL-FO to 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.
       </p>
  @@ -365,9 +353,7 @@
          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.
       </p>
  -<p>To reach this aim currently the layout system is being redesigned to
  -better handle the formatting of all different types of formatting objects.
  -   </p>
  +<p>The FOP layout system is currently being rewritten to better support the XSL-FO standard.</p>
   </div>
     
   <div class="frame note">
  
  
  
  1.8       +109 -135  xml-site/targets/fop/index.pdf
  
  	<<Binary file>>
  
  
  1.31      +2 -1      xml-site/targets/fop/license.html
  
  Index: license.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/license.html,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- license.html	23 Apr 2003 03:40:03 -0000	1.30
  +++ license.html	29 Apr 2003 16:45:23 -0000	1.31
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP License</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="license.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="license.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.8       +2 -1      xml-site/targets/fop/logocontest.html
  
  Index: logocontest.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/logocontest.html,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- logocontest.html	23 Apr 2003 03:40:03 -0000	1.7
  +++ logocontest.html	29 Apr 2003 16:45:23 -0000	1.8
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Logo contest</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="logocontest.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="logocontest.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.16      +2 -1      xml-site/targets/fop/news.html
  
  Index: news.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/news.html,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- news.html	23 Apr 2003 03:40:03 -0000	1.15
  +++ news.html	29 Apr 2003 16:45:23 -0000	1.16
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>News</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="news.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="news.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.18      +2 -1      xml-site/targets/fop/output.html
  
  Index: output.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/output.html,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- output.html	23 Apr 2003 03:40:04 -0000	1.17
  +++ output.html	29 Apr 2003 16:45:23 -0000	1.18
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP Output Options</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="output.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="output.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.9       +2 -1      xml-site/targets/fop/pdfencryption.html
  
  Index: pdfencryption.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/pdfencryption.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- pdfencryption.html	23 Apr 2003 03:40:04 -0000	1.8
  +++ pdfencryption.html	29 Apr 2003 16:45:24 -0000	1.9
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>PDF encryption.</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="pdfencryption.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="pdfencryption.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.18      +2 -1      xml-site/targets/fop/relnotes.html
  
  Index: relnotes.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/relnotes.html,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- relnotes.html	23 Apr 2003 03:40:04 -0000	1.17
  +++ relnotes.html	29 Apr 2003 16:45:24 -0000	1.18
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Release Notes</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="relnotes.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="relnotes.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.29      +200 -166  xml-site/targets/fop/resources.html
  
  Index: resources.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/resources.html,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- resources.html	23 Apr 2003 03:40:04 -0000	1.28
  +++ resources.html	29 Apr 2003 16:45:24 -0000	1.29
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Resources</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="resources.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="resources.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -302,262 +303,295 @@
   <a href="#mailing-lists-fop-user">FOP User Mailing List</a>
   </li>
   <li>
  -<a href="#mailing-lists-w3c-xslfo">XSL:FO Mailing List (at W3C)</a>
  +<a href="#mailing-lists-w3c-xslfo">XSL-FO Mailing List (at W3C)</a>
  +</li>
  +<li>
  +<a href="#mailing-lists-yahoogroups-xslfo">XSL-FO Mailing List (at YahooGroups)</a>
  +</li>
  +<li>
  +<a href="#mailing-lists-xslt-mulberry">XSLT List (Mulberry Tech)</a>
   </li>
   </ul>
   </li>
   <li>
   <a href="#specs">Specifications</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#specs-xslfo">XSL-FO</a>
  +</li>
  +<li>
  +<a href="#specs-xslt">XSLT</a>
  +</li>
  +<li>
  +<a href="#specs-xml">XML</a>
  +</li>
  +<li>
  +<a href="#other">Other</a>
  +</li>
  +</ul>
  +</li>
  +<li>
  +<a href="#documents">Books, Tutorials, Articles</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#documents-xslfo">XSL-FO</a>
  +</li>
  +<li>
  +<a href="#documents-xslt">XSLT</a>
   </li>
   <li>
  -<a href="#articles">Tutorials/Articles</a>
  +<a href="#documents-xml">XML</a>
  +</li>
  +</ul>
   </li>
   <li>
   <a href="#products">Related/Useful Products</a>
   </li>
   </ul>
  -  
  +    
   <a name="N101C2"></a><a name="mailing-lists"></a>
   <h3>Mailing Lists and Archives</h3>
   <div style="margin-left: 0 ; border: 2px">
   <a name="N101C8"></a><a name="mailing-lists-general"></a>
   <h4>General Information</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<p>Before posting questions to any list, review "<a href="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</a>".</p>
  +<p>Before posting questions to any list, review "<a target="_top" href="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</a>".</p>
   <p>Be sure to set your email client to send plain text email messages to any mailing lists.
   Please do <em>not</em> send html or rtf email, as they do not work well with the archive engines.
   If you are using Microsoft Outlook, this setting can be found at the "Mail Format" tab of the Tools/Options menu.</p>
  -<p>For help in understanding email acronyms, see the <a href="http://www.lingo2word.com/lists/acronym_listA.html">Lingo2Word Acronym List</a>, or the <a href="http://www.keno.org/web_design/acronyms.htm">Keno Internet Services Internet Glossary</a>.</p>
  +<p>For help in understanding email acronyms, see the <a target="_top" href="http://www.lingo2word.com/lists/acronym_listA.html">Lingo2Word Acronym List</a>, or the <a target="_top" href="http://www.keno.org/web_design/acronyms.htm">Keno Internet Services Internet Glossary</a>.</p>
   </div>
   <a name="N101E7"></a><a name="mailing-lists-fop-user"></a>
   <h4>FOP User Mailing List</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<p>
  -Use this forum to discuss topics of interest to FOP users.
  -After reviewing the FOP documentation and searching the
  -archives (see below), use this forum to ask questions about
  -how to download, install, configure, and use FOP. Please do
  -<em>not </em>use this forum for general XSL-FO, XSLT, or PDF questions.
  -        </p>
  +<p>Use this forum to discuss topics of interest to FOP users.
  +After reviewing the FOP documentation and searching the archives (see below), use this forum to ask questions about how to download, install, configure, and use FOP.
  +Please do <em>not</em> use this forum for general XSL-FO, XSLT, or PDF questions.</p>
   <ul>
  -            
  -<li>
  -To review the archives, you have several options:
  -              <ul>
  -                
  -<li>
  -The <a href="http://marc.theaimsgroup.com/?l=fop-user&r=1&w=2">Mailing list ARChives </a> (MARC) at the AIMS group (search).
  -                </li>
  -                
  -<li>
  -The <a href="http://nagoya.apache.org/eyebrowse/SummarizeList?listName=fop-user@xml.apache.org">Apache Eyebrowse</a> archive (search, list by date, author, subject, or thread).
  -                </li>
  -                
  -<li>
  -The <a href="http://xml.apache.org/mail/fop-user">Apache Mailing List archive</a> (gzip files).
  -                </li>
  +          
  +<li>To review the archives, you have several options:
  +            <ul>
                 
  -</ul>
  +<li>The <a target="_top" href="http://marc.theaimsgroup.com/?l=fop-user&r=1&w=2">Mailing list ARChives </a> (MARC) at the AIMS group (search).</li>
  +              
  +<li>The <a target="_top" href="http://nagoya.apache.org/eyebrowse/SummarizeList?listName=fop-user@xml.apache.org">Apache Eyebrowse</a> archive (search, list by date, author, subject, or thread).</li>
  +              
  +<li>The <a href="http://xml.apache.org/mail/fop-user">Apache Mailing List archive</a> (gzip files).</li>
               
  +</ul>
  +          
   </li>
  -            
  +          
   <li>Before posting questions to any list, see "<a href="#mailing-lists-general">General Information</a>".</li>
  -            
  -<li>
  -See <a href="http://xml.apache.org/mail.html#fop-user">Apache XML Mailing Lists</a>
  -for detailed subscription information.
  -            </li>
  -            
  -<li>
  -To subscribe (digest only): Send email to <a href="mailto:fop-user-digest-subscribe.at.xml.apache.org">fop-user-digest-subscribe@xml.apache.org</a>.
  -            </li>
  -            
  -<li>
  -To subscribe fully: Send email to <a href="mailto:fop-user-subscribe.at.xml.apache.org">fop-user-subscribe@xml.apache.org</a>.
  -            </li>
  -            
  -<li>
  -For standard help: Send email to <a href="mailto:fop-user-help.at.xml.apache.org">fop-user-help@xml.apache.org</a>.
  -            </li>
  -            
  -<li>
  -To unsubscribe: Send email to <a href="mailto:fop-user-unsubscribe.at.xml.apache.org">fop-user-unsubscribe@xml.apache.org</a>.
  -            </li>
  -      
  +          
  +<li>See <a href="http://xml.apache.org/mail.html#fop-user">Apache XML Mailing Lists</a> for detailed subscription information.</li>
  +          
  +<li>To subscribe (digest only): Send email to <a href="mailto:fop-user-digest-subscribe.at.xml.apache.org">fop-user-digest-subscribe@xml.apache.org</a>.</li>
  +          
  +<li>To subscribe fully: Send email to <a href="mailto:fop-user-subscribe.at.xml.apache.org">fop-user-subscribe@xml.apache.org</a>.</li>
  +          
  +<li>For standard help: Send email to <a href="mailto:fop-user-help.at.xml.apache.org">fop-user-help@xml.apache.org</a>.</li>
  +          
  +<li>To unsubscribe: Send email to <a href="mailto:fop-user-unsubscribe.at.xml.apache.org">fop-user-unsubscribe@xml.apache.org</a>.</li>
  +        
   </ul>
   </div>
   <a name="N1023C"></a><a name="mailing-lists-w3c-xslfo"></a>
  -<h4>XSL:FO Mailing List (at W3C)</h4>
  +<h4>XSL-FO Mailing List (at W3C)</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<p>
  -Use this forum to ask general XSL-FO questions.
  -          </p>
  +<p>Use this forum to ask general XSL-FO questions.</p>
   <ul>
  -            
  -<li>
  -To review the archive: <a href="http://lists.w3.org/Archives/Public/www-xsl-fo/">W3C XSL-FO Archives</a>.
  -            </li>
  -            
  +          
  +<li>To review the archive: <a target="_top" href="http://lists.w3.org/Archives/Public/www-xsl-fo/">W3C XSL-FO Archives</a>.</li>
  +          
   <li>Before posting questions to any list, see "<a href="#mailing-lists-general">General Information</a>".</li>
  -            
  -<li>
  -Subscription administration information can be found at <a href="http://www.w3.org/Mail/Request">W3C Mailing List Administrativia</a>. After reviewing the instructions there, send your subscribe or unsubscribe request to <a href="mailto:www-xsl-fo-request.at.w3.org">www-xsl-fo-request@w3.org</a>.
  -            </li>
  -      
  +          
  +<li>Subscription administration information can be found at <a target="_top" href="http://www.w3.org/Mail/Request">W3C Mailing List Administrativia</a>.
  +After reviewing the instructions there, send your subscribe or unsubscribe request to <a href="mailto:www-xsl-fo-request.at.w3.org">www-xsl-fo-request@w3.org</a>.</li>
  +        
   </ul>
   </div>
  +<a name="N10262"></a><a name="mailing-lists-yahoogroups-xslfo"></a>
  +<h4>XSL-FO Mailing List (at YahooGroups)</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Use this forum to ask general XSL-FO questions.</p>
  +<ul>
  +          
  +<li>Before posting questions to any list, see "<a href="#mailing-lists-general">General Information</a>".</li>
  +          
  +<li>The home page for this groups is <a target="_top" href="http://groups.yahoo.com/group/XSL-FO">XSL-FO - discussion of XSL Formatting Objects</a>.</li>
  +        
  +</ul>
   </div>
  -  
  -<a name="N10263"></a><a name="specs"></a>
  -<h3>Specifications</h3>
  +<a name="N1027D"></a><a name="mailing-lists-xslt-mulberry"></a>
  +<h4>XSLT List (Mulberry Tech)</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
             
  -<li>
  -            
  -<a href="http://www.w3.org/TR/2001/REC-xsl-20011015/">XSL-FO Recommendation (15 October 2001)</a>
  +<li>Before posting questions to any list, see "<a href="#mailing-lists-general">General Information</a>".</li>
             
  -</li>
  +<li>Information for using and subscribing can be found at <a target="_top" href="http://www.mulberrytech.com/xsl/xsl-list">XSL-List -- Open Forum on XSL</a>.</li>
  +        
  +</ul>
  +</div>
  +</div>
  +    
  +<a name="N10296"></a><a name="specs"></a>
  +<h3>Specifications</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<a name="N1029C"></a><a name="specs-xslfo"></a>
  +<h4>XSL-FO</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
             
   <li>
  -            
  -<a href="http://www.renderx.com/Tests/validator/fo.dtd.html">A dtd for the XSL-FO Recommendation provided by N. Grigoriev from RenderX</a>
  -          
  +<a target="_top" href="http://www.w3.org/TR/2001/REC-xsl-20011015/">XSL-FO Recommendation (15 October 2001)</a>
   </li>
             
   <li>
  -            
  -<a href="http://www.w3.org/TR/SVG/">Supported SVG Recommendation (04 September 2001)</a>
  +<a target="_top" href="http://www.renderx.com/Tests/validator/fo.dtd.html">Unofficial DTD for the XSL-FO Recommendation</a> provided by N. Grigoriev from RenderX.</li>
  +        
  +</ul>
  +</div>
  +<a name="N102B1"></a><a name="specs-xslt"></a>
  +<h4>XSLT</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
             
  +<li>
  +<a target="_top" href="http://www.w3.org/TR/xslt">XSLT Recommendation</a>
   </li>
  +        
  +</ul>
  +</div>
  +<a name="N102C0"></a><a name="specs-xml"></a>
  +<h4>XML</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
             
   <li>
  -            
  -<a href="http://www.w3.org/TR/REC-xml">XML Recommendation</a>
  -          
  +<a target="_top" href="http://www.w3.org/TR/REC-xml">XML Recommendation</a>
   </li>
             
   <li>
  -            
  -<a href="http://www.w3.org/TR/xslt">XSLT Recommendation</a>
  -          
  +<a target="_top" href="http://sax.sourceforge.net/">Simple API for XML (SAX)</a>
   </li>
             
   <li>
  -            
  -<a href="http://partners.adobe.com/asn/developer/acrosdk/docs/filefmtspecs/PDFReference.pdf">Portable Document Format (PDF) 1.4 Reference Manual </a>
  -          
  +<a target="_top" href="http://www.w3.org/TR/REC-DOM-Level-1">Document Object Model (DOM)</a>
   </li>
             
   <li>
  -            
  -<a href="http://sax.sourceforge.net/">Simple API for XML (SAX)</a>
  -          
  +<a target="_top" href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML Recommendation</a>
   </li>
  +        
  +</ul>
  +</div>
  +<a name="N102DE"></a><a name="other"></a>
  +<h4>Other</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
             
   <li>
  -            
  -<a href="http://www.w3.org/TR/REC-DOM-Level-1">Document Object Model (DOM)</a>
  -          
  +<a target="_top" href="http://www.w3.org/TR/SVG/">Supported SVG Recommendation (04 September 2001)</a>
   </li>
             
   <li>
  -            
  -<a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML Recommendation</a>
  -          
  +<a target="_top" href="http://partners.adobe.com/asn/developer/acrosdk/docs/filefmtspecs/PDFReference.pdf">Portable Document Format (PDF) 1.4 Reference Manual</a>
   </li>
             
   <li>
  -            
  -<a href="http://java.sun.com/j2se/1.3/docs/api/index.html">Java JDK 1.3 Documentation</a>
  -          
  +<a target="_top" href="http://java.sun.com/j2se/1.3/docs/api/index.html">Java JDK 1.3 Documentation</a>
   </li>
  -  
  +        
   </ul>
   </div>
  -  
  -<a name="N102B3"></a><a name="articles"></a>
  -<h3>Tutorials/Articles</h3>
  +</div>
  +    
  +<a name="N102F8"></a><a name="documents"></a>
  +<h3>Books, Tutorials, Articles</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<a name="N102FE"></a><a name="documents-xslfo"></a>
  +<h4>XSL-FO</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
             
  -<li>
  -            
  -<a href="http://www.ibiblio.org/xml/books/bible2/chapters/ch18.html">Elliotte Rusty Harold: Chapter 18 on xsl:fo from his excellent book XML Bible, Second Edition</a>
  +<li>[online book] <a target="_top" href="http://www.ibiblio.org/xml/books/bible2/chapters/ch18.html">The XML Bible</a>, by Elliotte Rusty Harold. Chapter 18 of XSL Formatting Objects</li>
             
  -</li>
  +<li>[online article] <a target="_top" href="http://www.sun.com/software/xml/developers/slides-dtd/">Using Formatting Objects with the Slides DTD</a>, by Paul Sandoz.</li>
             
  -<li>
  -            
  -<a href="http://www.sun.com/software/xml/developers/slides-dtd/">Paul Sandoz: Using formatting objects with the slides dtd</a>
  +<li>[online article] <a target="_top" href="http://www.xml.com/pub/a/2001/01/17/xsl-fo/index.html">Using XSL Formatting Objects</a>, by J. David Eisenberg.</li>
             
  -</li>
  +<li>[online reference] <a target="_top" href="http://zvon.org/xxl/xslfoReference/Output/index.html">XSL FO reference</a>, by Miloslav Nic.</li>
             
  -<li>
  -            
  -<a href="http://www.xml.com/pub/a/2001/01/17/xsl-fo/index.html">J. David Eisenberg: Using XSL Formatting Objects</a>
  +<li>[online book] <a target="_top" href="http://www.dpawson.co.uk/xsl/sect3/bk/index.html">An introduction to XSL Formatting Objects</a>, by Dave Pawson. See hardcopy version below.</li>
             
  -</li>
  +<li>[book] <a target="_top" href="http://www.oreilly.com/catalog/xslfo">XSL-FO</a>, by Dave Pawson, O'Reilly &amp; Associates, 2002, ISBN 0-596-00355-2. See online version above.</li>
             
  -<li>
  -            
  -<a href="http://zvon.org/xxl/xslfoReference/Output/index.html">Miloslav Nic: XSL FO reference</a>
  +<li>[book] <a target="_top" href="http://www.phptr.com/browse/product.asp?product_id={CEA527AF-412D-49DA-8C1F-46E0A519B8D8}">Definitive XSL-FO</a>, by G. Ken Holman, Prentice Hall PTR, 2003, ISBN 0-131-40374-5.</li>
             
  -</li>
  +<li>[book] <a target="_top" href="http://www.sams.com/catalog/product.asp?product_id={F7ADFA46-6AF1-497C-9163-0D6337F727B3}">XSL Formatting Objects Developer's Handbook</a>, by Doug Lovell, Sams, 2002, ISBN 0-672-32281-1.</li>
  +        
  +</ul>
  +</div>
  +<a name="N10340"></a><a name="documents-xslt"></a>
  +<h4>XSLT</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
             
  -<li>
  -            
  -<a href="http://www.dpawson.co.uk/xsl/sect3/bk/index.html">Dave Pawson: An introduction to XSL Formatting Objects</a>
  +<li>[book] <a target="_top" href="http://wrox.com/books/1861005067.htm">XSLT Programmer's Reference</a>, by Michael H. Kay, Wrox Press, ISBN 1-861-00506-7.</li>
             
  -</li>
  -    
  +<li>[book] <a target="_top" href="http://www.oreilly.com/catalog/xslt">XSLT</a>, by Doug Tidwell, O'Reilly &amp; Associates, 2001, ISBN 0-596-00053-7.</li>
  +          
  +<li>[book] <a target="_top" href="http://www.oreilly.com/catalog/xsltckbk">XSLT Cookbook</a>, by Sal Mangano, O'Reilly &amp; Associates, 2002, ISBN 0-596-00372-2.</li>
  +          
  +<li>[article] <a target="_top" href="http://www.dpawson.co.uk/xsl/xslfaq.html">Dave Pawson's XSLT FAQ</a>.</li>
  +         
  +<li>[book] <a target="_top" href="http://www.oreilly.com/catalog/xpathpointer">XPath and XPointer: Locating Content in XML Documents</a>, by John E. Simpson, O'Reilly &amp; Associates, 2002, ISBN 0-596-00291-2.</li>
  +          
  +<li>[book] <a target="_top" href="http://www.wiley.com/cda/product/0,,0471416207,00.html">XSL Essentials</a>, by Michael Fitzgerald, John Wiley &amp; Sons, 2001, ISBN 0-471-41620-7.</li>
  +        
   </ul>
   </div>
  -  
  -<a name="N102E0"></a><a name="products"></a>
  +<a name="N10374"></a><a name="documents-xml"></a>
  +<h4>XML</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<ul>
  +          
  +<li>[online book] <a target="_top" href="http://www.ibiblio.org/xml/books/bible2">The XML Bible</a>, by Elliotte Rusty Harold. See hardcopy version below.</li>
  +          
  +<li>[book] <a target="_top" href="http://www.wiley.com/cda/product/0,,0764547607,00.html">The XML Bible</a>, by Elliotte Rusty Harold, John Wiley &amp; Sons, ISBN 0-764-54760-7. See online version above.</li>
  +          
  +<li>[online resource] A great number of additional XML-related books and articles can be found at the <a target="_top" href="http://xml.oreilly.com">O'Reilly XML Site</a>.</li>
  +        
  +</ul>
  +</div>
  +</div>
  +    
  +<a name="N10394"></a><a name="products"></a>
   <h3>Related/Useful Products</h3>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
  +        
  +<li>PJ is an open source product that can be used to modify PDF documents:
  +<a target="_top" href="http://www.etymon.com/pj/index.html">http://www.etymon.com/pj/index.html</a>
  +</li>
  +        
  +<li>iText is a library that can edit PDF files, it is possible to do
  +post processing of the generated PDF files: <a target="_top" href="http://www.lowagie.com/iText/">http://www.lowagie.com/iText/</a>.</li>
  +        
  +<li>html2fo is a converter from html to xsl:fo: <a target="_top" href="http://html2fo.sourceforge.net/">http://html2fo.sourceforge.net/</a>.</li>
  +        
  +<li>FOA is a XSL-FO Authoring tool: <a target="_top" href="http://foa.sourceforge.net/">http://foa.sourceforge.net/</a>.</li>
  +        
  +<li>TIFFRenderer is a renderer for outputting multi-page TIFF: <a target="_top" href="http://www.tkachenko.com/fop/tiffrenderer.html">http://www.tkachenko.com/fop/tiffrenderer.html</a>.</li>
  +        
  +<li>AFP Renderer / Batch Assembler for FOP: <a target="_top" href="http://mypage.bluewin.ch/huanderegg/">http://mypage.bluewin.ch/huanderegg/</a>.</li>
  +        
  +<li>The <a target="_top" href="http://mogwai.sourceforge.net">Mogwai Project</a> includes a renderer for FOP that generates output for Okidata dot matrix printers.</li>
  +        
  +<li> [software] <a target="_top" href="http://www.vbxml.com/xpathvisualizer">The XPath Visualizer</a>. Web site says: "This is a full blown Visual XPath Interpreter for the evaluation of any XPath expression and visual presentation of the resulting nodeset or scalar value."</li>
         
  -<li>
  -PJ is an open source product that can be used to modify PDF documents:
  -<a href="http://www.etymon.com/pj/index.html">http://www.etymon.com/pj/index.html</a>
  -      
  -</li>
  -      
  -<li>
  -iText is a library that can edit PDF files, it is possible to do
  -post processing of the generated PDF files: <a href="http://www.lowagie.com/iText/">http://www.lowagie.com/iText/</a>.
  -      </li>
  -      
  -<li>
  -      html2fo is a converter from html to xsl:fo:
  -      <a href="http://html2fo.sourceforge.net/">http://html2fo.sourceforge.net/</a>.
  -      </li>
  -      
  -<li>
  -      FOA is a XSL-FO Authoring tool:
  -      <a href="http://foa.sourceforge.net/">http://foa.sourceforge.net/</a>.
  -      </li>
  -      
  -<li>
  -      TIFFRenderer is a renderer for outputting multi-page TIFF:
  -      <a href="http://www.tkachenko.com/fop/tiffrenderer.html">
  -      http://www.tkachenko.com/fop/tiffrenderer.html</a>.
  -      </li>
  -      
  -<li>
  -      AFP Renderer / Batch Assembler for FOP:
  -      <a href="http://mypage.bluewin.ch/huanderegg/">
  -      http://mypage.bluewin.ch/huanderegg/</a>.
  -      </li>
  -      
  -<li>
  -        The <a href="http://mogwai.sourceforge.net">Mogwai Project</a>
  -includes a renderer for FOP that generates output for Okidata dot matrix
  -printers.
  -      </li>
  -    
   </ul>
   </div>
     
  
  
  
  1.11      +500 -2521 xml-site/targets/fop/resources.pdf
  
  	<<Binary file>>
  
  
  1.38      +44 -38    xml-site/targets/fop/running.html
  
  Index: running.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/running.html,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- running.html	23 Apr 2003 03:40:04 -0000	1.37
  +++ running.html	29 Apr 2003 16:45:24 -0000	1.38
  @@ -286,43 +286,44 @@
   <tr>
   <td valign="middle">
   <h1>Running FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="running.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="running.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
   <ul class="minitoc">
   <li>
  -<a href="#Installation">Installation</a>
  +<a href="#install">Installation</a>
   <ul class="minitoc">
   <li>
  -<a href="#Overview">Overview</a>
  +<a href="#install-overview">Overview</a>
   </li>
   <li>
  -<a href="#Instructions">Instructions</a>
  +<a href="#install-instruct">Instructions</a>
   </li>
   <li>
  -<a href="#Problems">Problems</a>
  +<a href="#install-problems">Problems</a>
   </li>
   </ul>
   </li>
   <li>
  -<a href="#Starting+FOP+as+a+standalone+application">Starting FOP as a standalone application</a>
  +<a href="#standalone-start">Starting FOP as a Standalone Application</a>
   </li>
   <li>
  -<a href="#running_xalan">Running Xalan</a>
  +<a href="#check-input">Using Xalan to Check XSL-FO Input</a>
   </li>
   <li>
   <a href="#memory">Memory Usage</a>
   </li>
   <li>
  -<a href="#Problems-N102A3">Problems</a>
  +<a href="#problems">Problems</a>
   </li>
   </ul>
       
  -<a name="N101BE"></a><a name="Installation"></a>
  +<a name="N101BE"></a><a name="install"></a>
   <h3>Installation</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N101C4"></a><a name="Overview"></a>
  +<a name="N101C4"></a><a name="install-overview"></a>
   <h4>Overview</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The following software must be installed:</p>
  @@ -346,22 +347,23 @@
           
   </ul>
   </div>
  -<a name="N101F2"></a><a name="Instructions"></a>
  +<a name="N101F2"></a><a name="install-instruct"></a>
   <h4>Instructions</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>Basic FOP installation consists of first unzipping the <span class="codefrag">.gz</span> file that is the distribution medium, then unarchiving the resulting <span class="codefrag">.tar</span> file in a directory/folder that is convenient on your system. Please consult your operating system documentation or Zip application software documentation for instructions specific to your site.</p>
   </div>
  -<a name="N10202"></a><a name="Problems"></a>
  +<a name="N10202"></a><a name="install-problems"></a>
   <h4>Problems</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>Some Mac OSX users have experienced filename truncation problems using Stuffit to unzip and unarchive their distribution media. This is a legacy of older Mac operating systems, which had a 31-character pathname limit. Several Mac OSX users have recommended that Mac OSX users use the shell command <span class="codefrag">tar -xzf</span> instead.</p>
   </div>
   </div>
       
  -<a name="N10210"></a><a name="Starting+FOP+as+a+standalone+application"></a>
  -<h3>Starting FOP as a standalone application</h3>
  +<a name="N10210"></a><a name="standalone-start"></a>
  +<h3>Starting FOP as a Standalone Application</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>Review the batch file fop.bat or the shell script fop.sh to see how FOP is invoked.</p>
  +<p>The usual and recommended practice for starting FOP from the command line is to run the batch file fop.bat (Windows) or the shell script fop.sh (Unix/Linux).
  +If you write your own scripts, be sure to review these standard scripts to make sure that you get your environment properly configured.</p>
   <p>The standard scripts for starting FOP require that the environment variable JAVA_HOME be set to a path pointing to the appropriate Java installation on your system. Macintosh OSX includes a Java environment as part of its distribution. We are told by Mac OSX users that the path to use in this case is <span class="codefrag">/Library/Java/Home</span>. <strong>Caveat: </strong>We suspect that, as Apple releases new Java environments and as FOP upgrades the minimum Java requirements, the two will inevitably not match on some systems. Please see <a target="_top" href="http://developer.apple.com/java/faq">Java on Mac OSX FAQ</a> for information as it becomes available.</p>
   <p>
   <span class="codefrag">fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-pcl|-ps|-txt|-svg|-at|-print] &lt;outfile&gt;</span>
  @@ -409,19 +411,27 @@
   <p>PDF encryption is only available if FOP was compiled with encryption support <strong>and</strong> if compatible encryption support is availabe at run time. Currently, only the JCE is supported. Check the <a href="pdfencryption.html">Details</a>.</p>
   </div>
       
  -<a name="N10251"></a><a name="running_xalan"></a>
  -<h3>Running Xalan</h3>
  +<a name="N10251"></a><a name="check-input"></a>
  +<h3>Using Xalan to Check XSL-FO Input</h3>
   <div style="margin-left: 0 ; border: 2px">
  +<p>FOP sessions that use -xml and -xsl input instead of -fo input are actually controlling two distinct conversions: Tranforming XML to XSL-FO, then formatting the XSL-FO to PDF (or another FOP output format).
  +Although FOP controls both of these processes, the first is included merely as a convenience and for performance reasons.
  +Only the second is part of FOP's core processing.
  +If a user has a problem running FOP, it is important to determine which of these two processes is causing the problem.
  +If the problem is in the first process, the user's stylesheet is likely the cause.
  +The FOP development team does not have resources to help with stylesheet issues, although we have included links to some useful <a href="resources.html#specs">Specifications</a> and <a href="resources.html#articles">Books/Articles</a>.
  +If the problem is in the second process, FOP may have a bug or an unimplemented feature that does require attention from the FOP development team.</p>
  +<div class="frame note">
  +<div class="label">Note</div>
  +<div class="content">The user is always responsible to provide correct XSL-FO code to FOP.</div>
  +</div>
  +<p>In the case of using -xml and -xsl input, although the user is responsible for the XSL-FO code that is FOP's input, it is not visible to the user. To make the intermediate FO file visible, the FOP distribution includes xalan.bat (Windows batch file) and xalan.sh (Unix/Linux script), which run only the first (transformation) step, and write the results to a file.</p>
  +<div class="frame note">
  +<div class="label">Note</div>
  +<div class="content">When asking for help on the FOP mailing lists, <em>never</em> attach XML and XSL to illustrate the issue. Always run the xalan script and send the resulting XSL-FO file instead. Of course, be sure that the XSL-FO file is correct before sending it.</div>
  +</div>
   <p>
  -        The FOP distribution provicdes a Xalan.bat and a Xalan.sh
  -        script for conveniently running an XSL transformation without
  -        formatting. This can be useful for tracking down problems
  -        introduced during transformation and for preparing FO files
  -        for all kinds of purposes, including for inquiring help on the
  -        mailing lists.
  -      </p>
  -<p>
  -        The scripts are invoked the same way <a href="http://xml.apache.org/xalan-j/commandline.html">Xalan</a> is, in short:
  +        The scripts are invoked the same way that <a href="http://xml.apache.org/xalan-j/commandline.html">Xalan</a> is:
         </p>
   <p>
           
  @@ -429,11 +439,11 @@
         
   </p>
   <p>
  -        Note that there are subtle differences to the FOP command line.
  +        Note that there are some subtle differences between the "fop" and "xalan" command lines.
         </p>
   </div>
       
  -<a name="N1026B"></a><a name="memory"></a>
  +<a name="N1027F"></a><a name="memory"></a>
   <h3>Memory Usage</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -448,14 +458,10 @@
           
   <li>
   Increase memory available to the JVM. See <a href="http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/java.html">the -Xmx option</a> for more information.
  -          <div class="frame warning">
  -<div class="label">Warning</div>
  -<div class="content">
  -It is usually unwise to increase the memory allocated to the JVM beyond the amount of physical RAM, as this will generally cause significantly slower performance.
  -          </div>
  -</div>
  -        
  -</li>
  +          <!--<warning>-->
  +(Warning: It is usually unwise to increase the memory allocated to the JVM beyond the amount of physical RAM, as this will generally cause significantly slower performance.)
  +          <!--</warning>-->
  +        </li>
           
   <li>
   Avoid forward references.
  @@ -500,10 +506,10 @@
         </p>
   </div>
       
  -<a name="N102A3"></a><a name="Problems-N102A3"></a>
  +<a name="N102B8"></a><a name="problems"></a>
   <h3>Problems</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>If you have problems running FOP, please have a look at the <a target="_top" href="gethelp.html">"How to get Help" page</a>.</p>
  +<p>If you have problems running FOP, please see the <a target="_top" href="gethelp.html">"How to get Help" page</a>.</p>
   </div>
     
   </div>
  
  
  
  1.9       +269 -222  xml-site/targets/fop/running.pdf
  
  	<<Binary file>>
  
  
  1.13      +2 -1      xml-site/targets/fop/status.html
  
  Index: status.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/status.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- status.html	23 Apr 2003 03:40:04 -0000	1.12
  +++ status.html	29 Apr 2003 16:45:25 -0000	1.13
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP Status</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="status.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="status.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.21      +2 -1      xml-site/targets/fop/todo.html
  
  Index: todo.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/todo.html,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- todo.html	23 Apr 2003 03:40:04 -0000	1.20
  +++ todo.html	29 Apr 2003 16:45:25 -0000	1.21
  @@ -286,7 +286,8 @@
   <tr>
   <td valign="middle">
   <h1>Todo List</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="todo.pdf"><img alt="PDF" src="skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="todo.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.11      +36 -37    xml-site/targets/fop/design/areas.html
  
  Index: areas.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/areas.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- areas.html	23 Apr 2003 03:40:07 -0000	1.10
  +++ areas.html	29 Apr 2003 16:45:29 -0000	1.11
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Area Tree</title>
  +<title>FO Design: Area Tree</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <span class="sel"><font color="#ffcc00">Area Tree</font></span>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  +<a href="svg.html">SVG</a>
   </li>
  -    
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,17 +229,20 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>Area Tree</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="areas.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FO Design: Area Tree</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="areas.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Area Tree Design for FOP</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
   <ul class="minitoc">
   <li>
  +<a href="#intro">Introduction</a>
  +</li>
  +<li>
   <a href="#structure">Structure</a>
   </li>
   <li>
  @@ -294,18 +291,20 @@
   </li>
   </ul>
       
  +<a name="N101C5"></a><a name="intro"></a>
  +<h3>Introduction</h3>
  +<div style="margin-left: 0 ; border: 2px">
   <p>The Area Tree is an internal representation of the result document, representing pages and their contents.
   To make the concepts clearer and easier to understand, the code to implement the area tree matches the areas defined in the XSL-FO specification.</p>
  -    
   <p>The area tree is created by the layout managers once the layout is decided for a page.
   Once a completed page is finished it can then be added to the area tree.
   From that point forward, the area tree model can then handle the new page.
   The data in the area tree must be minimal and independant.
   This means that the data uses less memory and can be serialized to an output stream if needed.</p>
  -    
   <p>The Area Tree consists of a set of pages, which the actual implemenation places in a set of page sequences.</p>
  +</div>
       
  -<a name="N101D1"></a><a name="structure"></a>
  +<a name="N101D5"></a><a name="structure"></a>
   <h3>Structure</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The area tree is a root element that has a list of page-viewport-areas.
  @@ -313,7 +312,7 @@
   To handle the processing better FOP does not maintain a list at the root level but lets the area tree model handle each page as it is added.</p>
   </div>
       
  -<a name="N101DB"></a><a name="page"></a>
  +<a name="N101DF"></a><a name="page"></a>
   <h3>Page</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>A page consists of a page+viewport pair.</p>
  @@ -334,7 +333,7 @@
   After adding the areas for the body region then the other regions can be done layed out and added.</p>
   </div>
       
  -<a name="N101F4"></a><a name="block"></a>
  +<a name="N101F8"></a><a name="block"></a>
   <h3>Block Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Block level areas contain either other blocks or line areas (which is a
  @@ -345,7 +344,7 @@
   A block area is stacked with other block areas in a particular direction, it has a size and it contains line areas made from a group of inline areas and/or block areas.</p>
   </div>
       
  -<a name="N10204"></a><a name="line-area"></a>
  +<a name="N10208"></a><a name="line-area"></a>
   <h3>Line Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>A line areas is simply a collection of inline areas that are stacked in the inline progression direction.
  @@ -355,7 +354,7 @@
   If the line area contains unresolved areas then there will be a line resolver that retains the justification information until all areas in the line are resolved.</p>
   </div>
       
  -<a name="N10211"></a><a name="inline"></a>
  +<a name="N10215"></a><a name="inline"></a>
   <h3>Inline Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>There are a few different types of inline areas.
  @@ -370,7 +369,7 @@
   <p>Once a LineArea is filled with inline areas then the inline areas need to be aligned and adjusted to fill the line properly.</p>
   </div>
       
  -<a name="N10227"></a><a name="repeated-area"></a>
  +<a name="N1022B"></a><a name="repeated-area"></a>
   <h3>Repeated Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>There are cases where the same subtree could be repeated in the area tree.
  @@ -379,7 +378,7 @@
   Examples of this are: static areas, table header/footer, svg.</p>
   </div>
       
  -<a name="N10231"></a><a name="traits"></a>
  +<a name="N10235"></a><a name="traits"></a>
   <h3>Traits</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>A trait is information associated with an area.
  @@ -395,17 +394,17 @@
   The text inline areas then get the font colour set on the inline area or from the line area or from the block area.</p>
   </div>
       
  -<a name="N10241"></a><a name="classes"></a>
  +<a name="N10245"></a><a name="classes"></a>
   <h3>Classes</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The following class structure will be used to represent the area tree.</p>
  -<a name="N1024A"></a><a name="classes-page"></a>
  +<a name="N1024E"></a><a name="classes-page"></a>
   <h4>Page Area Classes</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The page area classes hold the top level layout of a page.
   The areas are created by the page master and should be ready to have flow areas added.</p>
   </div>
  -<a name="N10254"></a><a name="classes-block"></a>
  +<a name="N10258"></a><a name="classes-block"></a>
   <h4>Block Area Classes</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The block areas hold other block areas and/or line areas.
  @@ -414,7 +413,7 @@
   These areas a placed with an absolute positioning.
   The absolute positioning is where the blocks are placed with an offset from the parent reference area.</p>
   </div>
  -<a name="N10261"></a><a name="classes-inline"></a>
  +<a name="N10265"></a><a name="classes-inline"></a>
   <h4>Inline Area Classes</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The inline areas are used to make up a line area.
  @@ -424,7 +423,7 @@
   </div>
   </div>
       
  -<a name="N1026C"></a><a name="forward-references"></a>
  +<a name="N10270"></a><a name="forward-references"></a>
   <h3>Forward References</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The Area Tree maintains a set of mappings from the reference to pages.</p>
  @@ -434,7 +433,7 @@
   Once the inline area is resolved then the complete line should be adjusted to accomodate any change in space used by the area.</p>
   </div>
       
  -<a name="N1027C"></a><a name="caching"></a>
  +<a name="N10280"></a><a name="caching"></a>
   <h3>Caching</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>We may need to cache pages due to forward references or when keeping all
  @@ -446,7 +445,7 @@
   <p>The PageViewport retains information about id areas for easy access.</p>
   </div>
       
  -<a name="N1028C"></a><a name="extensions"></a>
  +<a name="N10290"></a><a name="extensions"></a>
   <h3>Extensions</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The Area Tree holds the Output Document extensions.
  @@ -456,7 +455,7 @@
   The actual data that is rendered could be set in a different way or depend on resolving a forward reference.</p>
   </div>
       
  -<a name="N10299"></a><a name="handlers"></a>
  +<a name="N1029D"></a><a name="handlers"></a>
   <h3>Area Tree Handlers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>To handle different situations the handler for the Area Tree handles each
  
  
  
  1.7       +165 -149  xml-site/targets/fop/design/areas.pdf
  
  	<<Binary file>>
  
  
  1.12      +16 -21    xml-site/targets/fop/design/breakpos.html
  
  Index: breakpos.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/breakpos.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- breakpos.html	23 Apr 2003 03:40:07 -0000	1.11
  +++ breakpos.html	29 Apr 2003 16:45:29 -0000	1.12
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Layout Managers</title>
  +<title>FOP Design: Layout Managers</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<span class="sel"><font color="#ffcc00">Break Possibility</font></span>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<span class="sel"><font color="#ffcc00">Break Possibility</font></span>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,8 +229,9 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>Layout Managers</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="breakpos.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: Layout Managers</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="breakpos.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -246,7 +241,7 @@
   </p>
   <ul class="minitoc">
   <li>
  -<a href="#Introduction">Introduction</a>
  +<a href="#intro">Introduction</a>
   </li>
   <li>
   <a href="#Anatomy+of+a+Break+Possibility">Anatomy of a Break Possibility</a>
  @@ -276,7 +271,7 @@
   </li>
   </ul>
   
  -<a name="N101C8"></a><a name="Introduction"></a>
  +<a name="N101C8"></a><a name="intro"></a>
   <h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  
  
  
  1.5       +235 -211  xml-site/targets/fop/design/breakpos.pdf
  
  	<<Binary file>>
  
  
  1.16      +25 -31    xml-site/targets/fop/design/embedding.html
  
  Index: embedding.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/embedding.html,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- embedding.html	23 Apr 2003 03:40:07 -0000	1.15
  +++ embedding.html	29 Apr 2003 16:45:29 -0000	1.16
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Embedding Design</title>
  +<title>FOP Design: Embedding FOP in Other Applications</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <span class="sel"><font color="#ffcc00">Embedding</font></span>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,18 +229,18 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>Embedding Design</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="embedding.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: Embedding FOP in Other Applications</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="embedding.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Design Approach to FOP</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
   <ul class="minitoc">
   <li>
  -<a href="#Introduction">Introduction</a>
  +<a href="#intro">Introduction</a>
   </li>
   <li>
   <a href="#Settings">Settings</a>
  @@ -279,7 +273,7 @@
   </li>
   </ul>
   
  -<a name="N101C8"></a><a name="Introduction"></a>
  +<a name="N101C5"></a><a name="intro"></a>
   <h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -292,10 +286,10 @@
      </p>
   </div>
   
  -<a name="N101D9"></a><a name="Settings"></a>
  +<a name="N101D6"></a><a name="Settings"></a>
   <h3>Settings</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N101DF"></a><a name="User+Agent"></a>
  +<a name="N101DC"></a><a name="User+Agent"></a>
   <h4>User Agent</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -319,7 +313,7 @@
   <a target="_top" href="useragent.html">User Agent</a> page.
      </p>
   </div>
  -<a name="N101FC"></a><a name="Logging"></a>
  +<a name="N101F9"></a><a name="Logging"></a>
   <h4>Logging</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
  @@ -334,7 +328,7 @@
   
   </ul>
   </div>
  -<a name="N10212"></a><a name="XML+input"></a>
  +<a name="N1020F"></a><a name="XML+input"></a>
   <h4>XML input</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
  @@ -345,7 +339,7 @@
   
   </ul>
   </div>
  -<a name="N10222"></a><a name="general+options"></a>
  +<a name="N1021F"></a><a name="general+options"></a>
   <h4>general options</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
  @@ -358,7 +352,7 @@
   
   </ul>
   </div>
  -<a name="N10235"></a><a name="Rendering+Options"></a>
  +<a name="N10232"></a><a name="Rendering+Options"></a>
   <h4>Rendering Options</h4>
   <div style="margin-left: 0 ; border: 2px">
   <ul>
  @@ -383,7 +377,7 @@
   
   </ul>
   </div>
  -<a name="N10257"></a><a name="Render+Results"></a>
  +<a name="N10254"></a><a name="Render+Results"></a>
   <h4>Render Results</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -403,7 +397,7 @@
   
   </ul>
   </div>
  -<a name="N10270"></a><a name="Setting+Up"></a>
  +<a name="N1026D"></a><a name="Setting+Up"></a>
   <h4>Setting Up</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  @@ -414,7 +408,7 @@
   selection for renderer options.
   </p>
   </div>
  -<a name="N1027A"></a><a name="Others"></a>
  +<a name="N10277"></a><a name="Others"></a>
   <h4>Others</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>
  
  
  
  1.6       +74 -74    xml-site/targets/fop/design/embedding.pdf
  
  	<<Binary file>>
  
  
  1.13      +26 -32    xml-site/targets/fop/design/extending.html
  
  Index: extending.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/extending.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- extending.html	23 Apr 2003 03:40:07 -0000	1.12
  +++ extending.html	29 Apr 2003 16:45:30 -0000	1.13
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>FOP Extensions</title>
  +<title>FOP Design: Extensions</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,39 +229,39 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>FOP Extensions</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="extending.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: Extensions</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="extending.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Adding extensions to FOP</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
   <ul class="minitoc">
   <li>
  -<a href="#Extensions">Extensions</a>
  -<ul class="minitoc">
  +<a href="#intro">Introduction</a>
  +</li>
   <li>
  -<a href="#Extensions-N101D1">Extensions</a>
  +<a href="#Extensions">Extensions</a>
   </li>
   <li>
   <a href="#Examples">Examples</a>
   </li>
   </ul>
  -</li>
  -</ul>
   
  -<a name="N101C8"></a><a name="Extensions"></a>
  -<h3>Extensions</h3>
  +<a name="N101C5"></a><a name="intro"></a>
  +<h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
   FOP provides an extension mechanism to add extra functionality. There
   are a number of different types of extensions that apply to different
   steps when converting FO into the rendered output.
     </p>
  -<a name="N101D1"></a><a name="Extensions-N101D1"></a>
  -<h4>Extensions</h4>
  +</div>
  +
  +<a name="N101CF"></a><a name="Extensions"></a>
  +<h3>Extensions</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
   SVG Graphic - This applies to svg and any other xml document that
  @@ -314,8 +308,9 @@
      
   </ul>
   </div>
  -<a name="N101F0"></a><a name="Examples"></a>
  -<h4>Examples</h4>
  +
  +<a name="N101EE"></a><a name="Examples"></a>
  +<h3>Examples</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
   Plan - The plan extension is a simple SVG graphic extension.
  @@ -348,7 +343,6 @@
   /S /JavaScript
   /JS (app.execMenuItem("AcroSrch:Query");)
   &gt;&gt;</pre>
  -</div>
   </div>
   
       
  
  
  
  1.5       +52 -53    xml-site/targets/fop/design/extending.pdf
  
  	<<Binary file>>
  
  
  1.14      +161 -154  xml-site/targets/fop/design/fotree.html
  
  Index: fotree.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/fotree.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- fotree.html	23 Apr 2003 03:40:07 -0000	1.13
  +++ fotree.html	29 Apr 2003 16:45:30 -0000	1.14
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>FO Tree</title>
  +<title>FOP Design: FO Tree</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  +<a href="svg.html">SVG</a>
   </li>
  -    
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,12 +229,12 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>FO Tree</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="fotree.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: FO Tree</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="fotree.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Design of FO Tree Structure</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
  @@ -249,187 +243,200 @@
   <a href="#intro">Introduction</a>
   </li>
   <li>
  -<a href="#fonode">FONode</a>
  +<a href="#process">Processing</a>
   </li>
   <li>
  -<a href="#create-fo">Making FO's</a>
  +<a href="#recycle">Recycling FO Tree Memory</a>
   </li>
   <li>
  -<a href="#properties">Properties</a>
  +<a href="#serialize">FO Tree Serialization</a>
   </li>
   <li>
  -<a href="#foreign">Foreign XML</a>
  +<a href="#specific-elements">Notes About Specific Elements</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#page-master">page-master</a>
   </li>
   <li>
  -<a href="#unknown">Unknown Elements</a>
  +<a href="#flow">flow</a>
   </li>
   <li>
  -<a href="#extensions">Extensions</a>
  +<a href="#other-elements">Other Elements</a>
   </li>
  +</ul>
  +</li>
  +<li>
  +<a href="#implement">Implementation Notes</a>
  +<ul class="minitoc">
   <li>
  -<a href="#page-master">Page Masters</a>
  +<a href="#fonode">FONode</a>
   </li>
   <li>
  -<a href="#flow">Flow</a>
  +<a href="#create-fo">Creating FO Objects</a>
   </li>
   <li>
  -<a href="#other-elements">Other Elements</a>
  +<a href="#foreign">Foreign XML</a>
  +</li>
  +<li>
  +<a href="#unknown">Unknown Elements</a>
  +</li>
  +</ul>
   </li>
   </ul>
       
  -<a name="N101C8"></a><a name="intro"></a>
  +<a name="N101C5"></a><a name="intro"></a>
   <h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>The FO Tree is an internal representation of the input XSL-FO document.
  -The tree is created by building the elements and attributes from the SAX events.
  -The process of building the FO Tree corresponds to the <strong>Objectify</strong> step from the spec.
  -The <strong>Refinement</strong> step is part of reading and using the properties which may happen immediately or during the layout process.</p>
  -<p>The FO Tree is used as an intermediatory structure which is converted
  -into the area tree. The complete FO tree should not be held in memory
  -since FOP should be able to handle FO documents of any size.</p>
  -<p>The FO Tree is simply a heirarchy of java objects that represent the fo elements from xml.
  -The traversal is done by the layout or structure process only in the flow elements.</p>
  +<p>The FO Tree is an internal hierarchical representation (java objects and properties) of the input XSL-FO document, and is created from the <a href="parsing.html">parsing</a> of that XSL-FO document.
  +The process of building the FO Tree corresponds to the <strong>Objectify</strong> step in the XSL-FO spec.
  +The FO Tree is an intermediate structure which will later be <a href="layout.html">converted into the area tree</a>.</p>
   </div>
  -      
  -<a name="N101DE"></a><a name="fonode"></a>
  -<h3>FONode</h3>
  +    
  +<a name="N101DA"></a><a name="process"></a>
  +<h3>Processing</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>The base class for all objects in the tree is FONode. The base class for
  -all FO Objects is FObj.</p>
  -<p>The class inheritance described above only describes the nature of the
  -content. Every FO in FOP also has a parent, and a Vector of children. The
  -parent attribute (in the Java sense), in particular, is used to enforce
  -constraints required by the FO hierarchy.</p>
  -<p>FONode, among other things, ensures that FO's have a parent and that they
  -may have children.</p>
  -<p>Each xml element is represented by a java object. For pagination the
  -classes are in <span class="codefrag">org.apache.fop.fo.pagination.*</span>, for elements in the flow
  -they are in <span class="codefrag">org.apache.fop.fo.flow.*</span> and some others are in
  -<span class="codefrag">org.apache.fop.fo.*.</span>
  -</p>
  -</div>
  +<p>The SAX Events that are fired by the parsing process are caught by the FO Tree system.
  +Events for starting an element, ending an element, and text data are assembled by the FO Tree system into a set of objects that represent the input FO document.
  +A class exists for each element in the XSL-FO set, and an object in the appropriate class is created for each element in the input XSL-FO.</p>
  +<p>For attributes attached to an XSL-FO element, a property list mapping is used to convert the attribute into properties of the object related to the element.</p>
  +<p>To the extent possible, validation is checked as the FO Tree is built. An appropriate error message is returned to the user, and processing continues if possible.</p>
  +<p>Elements from <a href="parsing.html#namespaces">foreign namespaces</a> that are recognized by FOP fall into the following categories:</p>
  +<ul>
  +        
  +<li>Pass-thru: These are placed into a DOM object, which is then passed through FOP directly to the renderer. SVG is an example.</li>
  +        
  +<li>FOP Internal: These are placed into objects that can then be used by FOP. An example of this would be an element that the layout process will use to create an area. Another example would be an element that contains setup information for the renderer.</li>
         
  -<a name="N101F9"></a><a name="create-fo"></a>
  -<h3>Making FO's</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>There is a class for each element in the FO set. An object is created for
  -each element in the FO Tree. This object holds the properties for the FO
  -Object.</p>
  -<p>Some validity checking is done during these steps. The user can be warned of the error and processing can continue if possible.</p>
  -<p>When the object is created it is setup.
  -It is given its element name, the FOUserAgent - for resolving properties etc. - the logger and the attributes.
  -The methods <span class="codefrag">handleAttributes()</span> and <span class="codefrag">setuserAgent()</span>, common to <span class="codefrag">FONode</span>, are used in this process.
  -The object will then be given any text data or child elements.
  -Then the <span class="codefrag">end()</span> method is called.
  -The end method is used by a number of elements to indicate that it can do certain processing since all the children have been added.</p>
  -<p>An FO maker is read from a hashmap lookup using the namespace and
  -element name. This maker is then used to create a new class that
  -represents an FO element. This is then added to the FO tree as a child
  -of the current parent.</p>
  -</div>
  -      
  -<a name="N10218"></a><a name="properties"></a>
  -<h3>Properties</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>The XML attributes on each element are passed to the object. The objects
  -that represent FO objects then convert the attributes into properties.</p>
  -<p>Since properties can be inherited the PropertyList class handles resolving
  -properties for a particular element.
  -All properties are specified in an XML file. Classes are created
  -automatically during the build process.</p>
  -<p>In some cases the element may be moved to have a different parent, for
  -example markers, or the inheritance could be different, for example
  -initial property set.</p>
  -<p>Properties (recall that FO's have properties, areas have traits, and XML
  -nodes have attributes) are also a concern of <em>FOTreeBuilder</em>. It
  -accomplishes this by using a <em>PropertyListBuilder</em>. There is a
  -separate <em>PropertyListBuilder</em> for each namespace encountered
  -while building the FO tree. Each Builder object contains a hash of
  -property names and <em>their</em> respective makers. It may also
  -contain element-specific property maker hashes; these are based on the
  -<em>local name</em> of the flow object, ie. <em>table-row</em>, not
  -<em>fo:table-row</em>. If an element-specific property mapping exists,
  -it is preferred to the generic mapping.</p>
  -<p>The base class for all
  -properties is <em>Property</em>, and all the property makers extend
  -<em>Property.Maker</em>. A more complete discussion of the property
  -architecture may be found in <a target="_top" href="properties.html">Properties</a>.</p>
  +</ul>
  +<p>For unrecognized namespaces, a dummy object or a generic DOM is created.</p>
  +<p>While the tree building is mainly about creating the FO Tree, some FO Tree events trigger processes in other parts of FOP.
  +The end of a page-sequence element triggers the layout process for that page-sequence (see discussion of <a href="#recycle">Recycling</a>).
  +Also, the end of the XML document tells the renderer that it can finalize the output document.</p>
   </div>
       
  -<a name="N1024D"></a><a name="foreign"></a>
  -<h3>Foreign XML</h3>
  +<a name="N10204"></a><a name="recycle"></a>
  +<h3>Recycling FO Tree Memory</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>FOP supports the handlingof foreign XML.
  -The XML is converted internally into a DOM, this is then available to
  -the FO tree to convert the DOM into another format which can be rendered.
  -In the case of SVG the DOM needs to be created with Batik, so an element
  -mapping is used to read all elements in the SVG namespace and pass them
  -into the Batik DOM.</p>
  -<p>The base class for foreign XML is XMLObj. This class handles creating a
  -DOM Element and the setting of attributes. It also can create a DOM
  -Document if it is a top level element, class XMLElement.
  -This class must be extended for the namespace of the XML elements. For
  -unknown namespaces the class is UnknowXMLObj.</p>
  -<p>If some special processing is needed then the top level element can extend
  -the XMLObj. For example the SVGElement makes the special DOM required for
  -batik and gets the size of the svg.</p>
  -<p>Foreign XML will usually be in an fo:instream-foreign-object, the XML will
  -be passed to the render as a DOM where the render will be able to handle
  -it. Other XML from an unknwon namespace will be ignored.</p>
  -<p>By using element mappings it is possible to read other XML and either</p>
  +<p>To minimize the amount of memory used by FOP, we wish to recycle FO Tree memory as much as possible.
  +There are at least three possible places that FO Tree fragments could be passed to the Layout process, so that their memory can be reused:</p>
   <ul>
           
  -<li>set information on the area tree</li>
  +<li>
  +          
  +<strong>fo:block</strong> It might be tempting to start laying out pages as soon as the first fo:block object is finished. However, there are many downstream things that can affect the placement of that block on a page, such as graphics and footnotes. So, in order to maintain conformance to the XSL-FO specification, and create high-quality output, we must see more of the document.</li>
           
  -<li>create pseudo FO Objects that create areas in the area tree</li>
  +<li>
  +          
  +<strong>fo:root</strong> The other extreme is to wait until the entire document is read in before processing any of it. This essentially means that there is no memory recycling. Processing the document correctly is more important than saving memory, so this option would be used if there were no better alternative.</li>
           
  -<li>create FO Objects</li>
  +<li>
  +          
  +<strong>fo:page-sequence</strong> The page-sequence object provides a nice clean break in the document. Content from one page-sequence will never interfere with nor affect the placement of the content of another. FOP uses this option as the optimum way to maintain compliance with the standard and to minimize memory consumption.</li>
         
   </ul>
   </div>
       
  -<a name="N1026F"></a><a name="unknown"></a>
  -<h3>Unknown Elements</h3>
  +<a name="N10223"></a><a name="serialize"></a>
  +<h3>FO Tree Serialization</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>If an element is in a known namespace but the element is unknown then an
  -Unknown object is created. This is mainly to provide information to the
  -user.
  -This could happen if the fo document contains an element from a different
  -version or the element is misspelt.</p>
  +<p>This issue is implied by the requirement to process documents of arbitrary size. Unless some arbitrary limit is placed on the size of page-sequence objects, FOP must be able to serialize FO tree fragments as necessary.</p>
   </div>
       
  -<a name="N10279"></a><a name="extensions"></a>
  -<h3>Extensions</h3>
  +<a name="N1022D"></a><a name="specific-elements"></a>
  +<h3>Notes About Specific Elements</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>It is possible to add extensions to FOP so that you can extend the ability of
  -FOP with respect to render output, document specific information or extended
  -layout functionality.</p>
  -</div>
  -    
  -<a name="N10283"></a><a name="page-master"></a>
  -<h3>Page Masters</h3>
  +<a name="N10233"></a><a name="page-master"></a>
  +<h4>page-master</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The first elements in a document are the elements for the page master setup.
   This is usually only a small number and will be used throughout the document to create new pages.
  -These elements are kept as a factory to create the page and appropriate regions whenever a new page is requested by the layout.
  -The objects in the FO Tree that represent these elements are themselves the factory.
  -The root element keeps these objects as a factory for the page sequences.</p>
  +The root element keeps these objects as a factory to create the page and appropriate regions whenever a new page is requested by the layout.
  +The objects in the FO Tree that represent these elements are themselves the factory.</p>
   </div>
  -    
  -<a name="N1028D"></a><a name="flow"></a>
  -<h3>Flow</h3>
  +<a name="N1023D"></a><a name="flow"></a>
  +<h4>flow</h4>
   <div style="margin-left: 0 ; border: 2px">
  -<p>The elements that are in the flow of the document are a set of elements
  -that is needed for the layout process. Each element is important in the
  -creation of areas.</p>
  +<p>The elements within the flow of a page-sequence are those that are needed for the layout process.
  +These element will later be used to create areas in the layout process.</p>
   </div>
  -    
  -<a name="N10297"></a><a name="other-elements"></a>
  -<h3>Other Elements</h3>
  +<a name="N10247"></a><a name="other-elements"></a>
  +<h4>Other Elements</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The remaining FO Objects are things like page-sequence, title and color-profile.
  -These are handled by their parent element; i.e. the root looks after the declarations and the declarations maintains a list of colour profiles.
  -The page-sequences are direct descendents of root.</p>
  +Each is handled by its parent element.
  +The root handles declarations, and declarations maintains a list of colour profiles.
  +The page-sequences are direct descendants of root.</p>
  +</div>
  +</div>
  +    
  +<a name="N10252"></a><a name="implement"></a>
  +<h3>Implementation Notes</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<a name="N10258"></a><a name="fonode"></a>
  +<h4>FONode</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The base class for all objects in the tree is FONode. The base class for
  +all FO Objects is FObj (which is a subclass of FONode). Other FONode subclasses are for foreign and unknown XML.</p>
  +<p>Each FO in FOP has a parent (except root) and a Vector of children. Java inheritance (superclasses and subclasses) is used to enforce constraints required by the FO hierarchy.</p>
  +<p>FONode, among other things, ensures that each FO has a parent, and provides the mechanism for keeping track of its children.</p>
  +<p>Each xml element is represented by a java object.
  +The classes for these objects are grouped into packages for convenience:</p>
  +<ul>
  +          
  +<li>pagination: <span class="codefrag">org.apache.fop.fo.pagination.*</span>
  +</li>
  +          
  +<li>flow: <span class="codefrag">org.apache.fop.fo.flow.*</span>
  +</li>
  +          
  +<li>other: <span class="codefrag">org.apache.fop.fo.*.</span>
  +</li>
  +        
  +</ul>
  +</div>
  +<a name="N1027D"></a><a name="create-fo"></a>
  +<h4>Creating FO Objects</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The process of creating an FO Object is as follows (see <span class="codefrag">FOTreeBuilder.startElement()</span> for details):</p>
  +<ul>
  +          
  +<li>An FO maker is selected from a hashmap lookup using the namespace and
  +element name.</li>
  +          
  +<li>This maker is then used to create the new object that represents the FO element.</li>
  +          
  +<li>The new object is given its element name, an FOUserAgent (for resolving properties, etc.), a logger and its attributes.</li>
  +          
  +<li>The new object is added to the FO tree as a child of the current parent.</li>
  +          
  +<li>Child elements are then processed. This is an iterative process: the child elements go through the same process here documented for their parent.</li>
  +        
  +</ul>
  +</div>
  +<a name="N1029C"></a><a name="foreign"></a>
  +<h4>Foreign XML</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>For SVG, the DOM needs to be created with Batik, so an element mapping is used to read all elements in the SVG namespace and pass them into the Batik DOM.</p>
  +<p>The base class for foreign XML is XMLObj. This class handles creating a
  +DOM Element and the setting of attributes. It also can create a DOM
  +Document if it is a top level element, class XMLElement.
  +This class must be extended for the namespace of the XML elements. For
  +unknown namespaces the class is UnknowXMLObj.</p>
  +<p>If some special processing is needed, then the top level element can extend
  +the XMLObj. For example the SVGElement makes the special DOM required for
  +batik and gets the size of the svg.</p>
  +<p>Foreign XML will usually be in an fo:instream-foreign-object.
  +The XML will be passed to the renderer as a DOM, which is expected to know how to handle it.
  +XML from an unknown namespace will be ignored.</p>
  +<p>See <a href="parsing.html#namespaces">Input Parsing Namespaces</a> for more discussion and links to information about using foreign XML in FOP.</p>
  +</div>
  +<a name="N102B6"></a><a name="unknown"></a>
  +<h4>Unknown Elements</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>If an element is in a known namespace but the element is unknown within that namespace, then an Unknown object is created.
  +This generally indicates an input error: perhaps an element from an older version of the XSL-FO standard, or a misspelling.
  +The Unknown object is mainly used to provide information to the user.</p>
  +</div>
   </div>
     
   </div>
  
  
  
  1.6       +519 -250  xml-site/targets/fop/design/fotree.pdf
  
  	<<Binary file>>
  
  
  1.15      +118 -171  xml-site/targets/fop/design/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/index.html,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- index.html	23 Apr 2003 03:40:07 -0000	1.14
  +++ index.html	29 Apr 2003 16:45:30 -0000	1.15
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -236,7 +230,8 @@
   <tr>
   <td valign="middle">
   <h1>Introduction to FOP Design</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="index.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="index.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -245,15 +240,7 @@
   </p>
   <ul class="minitoc">
   <li>
  -<a href="#Introduction">Introduction</a>
  -<ul class="minitoc">
  -<li>
  -<a href="#Overview">Overview</a>
  -</li>
  -<li>
  -<a href="#Stages">Stages</a>
  -</li>
  -</ul>
  +<a href="#black-box">The Black Box View</a>
   </li>
   <li>
   <a href="#primary-goals">Primary Design Goals</a>
  @@ -270,119 +257,81 @@
   <a href="#secondary-goals">Secondary Design Goals</a>
   <ul class="minitoc">
   <li>
  -<a href="#sec-goal-memory">Keep Memory Minimal</a>
  +<a href="#sec-goal-memory">Minimize Memory Use</a>
   </li>
   </ul>
   </li>
   <li>
  -<a href="#issues">Design Issues</a>
  -<ul class="minitoc">
  -<li>
  -<a href="#issue-input">Use SAX as Input</a>
  -</li>
  -<li>
  -<a href="#issue-fo-recycle">Process FO Elements ASAP</a>
  -</li>
  -<li>
  -<a href="#issue-fo-serialize">Serialize FO Tree as Necessary</a>
  -</li>
  -<li>
  -<a href="#issue-simple-layout">Keep Layouts Simple</a>
  -</li>
  -<li>
  -<a href="#issue-simple-id-refs">Keep ID References Simple</a>
  -</li>
  -<li>
  -<a href="#issue-area-recycle">Render Pages ASAP</a>
  -</li>
  -<li>
  -<a href="#issue-renderers-responsible">Renderers are Responsible</a>
  -</li>
  -<li>
  -<a href="#issue-output-stream">Send Output to a Stream</a>
  -</li>
  -</ul>
  +<a href="#big-picture">The Big Picture View</a>
   </li>
   </ul>
       
   <div class="frame note">
   <div class="label">Note</div>
  -<div class="content">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).</div>
  -</div>
  -
  -
  -
  -<a name="N101CE"></a><a name="Introduction"></a>
  -<h3>Introduction</h3>
  -<div style="margin-left: 0 ; border: 2px">
  -<a name="N101D4"></a><a name="Overview"></a>
  -<h4>Overview</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>FOP takes an xml file does its magic and then writes a document to a
  -       stream.</p>
  -<p>xml -&gt; [FOP] -&gt; 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>
  +<div class="content">The articles in this section pertain mainly 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).
  +Therefore other (non-layout) sections in this document are probably largely accurate for the maintenance branch, but should be used with care in that context.</div>
   </div>
  -<a name="N101EA"></a><a name="Stages"></a>
  -<h4>Stages</h4>
  +    
  +<a name="N101CE"></a><a name="black-box"></a>
  +<h3>The Black Box View</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<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 -&gt; FO Tree -&gt; Layout Managers -&gt; Area Tree
  -       -&gt; Render -&gt; document</p>
  -<p>In the case of rtf, mif etc. <br>SAX Handler -&gt; FO Tree -&gt;
  -       Structure Renderer -&gt; 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>
  -</div>
  +<p>From a user's standpoint, FOP is a black box that an xml file as input, performs some magic, then creates the desired output:</p>
  +<table class="ForrestTable" cellspacing="1" cellpadding="4">
  +        
  +<caption>FOP from a User's Standpoint</caption>
  +        
  +<tr>
  +          
  +<th colspan="1" rowspan="1">Process</th>
  +          <th colspan="1" rowspan="1">Result</th>
  +        
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1">.</td>
  +          <td colspan="1" rowspan="1">XSL-FO document</td>
  +        
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1">FOP</td>
  +          <td colspan="1" rowspan="1">Output: PDF, Postscript, Print, etc.</td>
  +        
  +</tr>
  +      
  +</table>
  +<p>Although this is simple, it is useful in defining the outer limits of FOP's core processing.
  +There may be other things going on under FOP's control that are not really part of FOP.
  +For example, FOP provides a convenience mechanism that takes semantic XML + an XSLT transformation as input, instead of XSL-FO.
  +This is done outside of FOP's core processing (by Xalan), and it is therefore outside the scope of FOP's design, and outside the scope of the FOP design documents.</p>
   </div>
       
  -<a name="N10203"></a><a name="primary-goals"></a>
  +<a name="N10208"></a><a name="primary-goals"></a>
   <h3>Primary Design Goals</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<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>
  -<a name="N1020C"></a><a name="pri-goal-conformance"></a>
  +<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>
  +<a name="N10211"></a><a name="pri-goal-conformance"></a>
   <h4>Conformance to the XSL-FO Specification</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>The current design goal is to reach the "basic" level of conformance, and to have enough flexibility in the design to reach "complete" conformance without major rewriting.
  -After "basic" conformance is achieved, it is probably that higher levels of conformance will be sought.</p>
  +After "basic" conformance is achieved, it is probable that higher levels of conformance will be sought.</p>
   </div>
  -<a name="N10216"></a><a name="pri-goal-unlimited-size"></a>
  +<a name="N1021B"></a><a name="pri-goal-unlimited-size"></a>
   <h4>Process Files of Arbitrary Size</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>Except for user storage limitations, the design goal is to be able to process files of any size.</p>
   </div>
   </div>
       
  -<a name="N10221"></a><a name="secondary-goals"></a>
  +<a name="N10226"></a><a name="secondary-goals"></a>
   <h3>Secondary Design Goals</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N10227"></a><a name="sec-goal-memory"></a>
  -<h4>Keep Memory Minimal</h4>
  +<a name="N1022C"></a><a name="sec-goal-memory"></a>
  +<h4>Minimize Memory Use</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>Many FOP design decisions revolve around trying to minimize the use of memory.
   The primary purpose here is to reduce the amount of data that must be serialized to storage during processing.
  @@ -393,73 +342,71 @@
   </div>
   </div>
       
  -<a name="N10232"></a><a name="issues"></a>
  -<h3>Design Issues</h3>
  +<a name="N10237"></a><a name="big-picture"></a>
  +<h3>The Big Picture View</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>As with any significant programming project, we need to first understand the big problem, then break it into smaller solvable problems.
  -To achieve our design goals, we have identified and attempted to resolve some design issues.
  -Since they are in support of the primary and secondary goals, they are not necessarily written in stone.
  -However, most of them have been discussed at length among the developers, and are reasonably well settled.</p>
  -<a name="N1023B"></a><a name="issue-input"></a>
  -<h4>Use SAX as Input</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>The two standard ways of dealing with XML input are SAX and DOM. SAX basically creates events as it parses an XML document in a serial fashion; a program using SAX (and not storing anything internally) will only see a small window of the document at any point in time, and can never look forward in the document. DOM creates and stores a tree representation of the document, allowing a view of the entire document as an integrated whole. One issue that may seem counter-intuitive to some new FOP developers, and which has from time to time been contentious, is that FOP uses SAX for input. (DOM can be used as input as well, but it is converted into SAX events before entering FOP, effectively negating its advantages).</p>
  -<p>Since FOP essentially needs a tree representation of the FO input, at first glance it seems to make sense to use DOM. Instead, FOP takes SAX events and builds its own tree-like structure. Why?</p>
  -<ul>
  +<p>With our design goals outlined, we'll now open the Black Box and look at the major processes inside.
  +FOP has adopted the basic structure of the XSL-FO standard itself as a convenient model for the major processes in FOP. The Result in each row is the input for the next.</p>
  +<table class="ForrestTable" cellspacing="1" cellpadding="4">
  +        
  +<caption>FOP's Big Picture Design</caption>
  +        
  +<tr>
             
  -<li>DOM has a relatively large memory footprint. FOP's FO Tree is a lighter-weight structure.</li>
  +<th colspan="1" rowspan="1">Process</th>
  +          <th colspan="1" rowspan="1">Process Result/Input for Next</th>
  +          <th colspan="1" rowspan="1">Notes</th>
  +        
  +</tr>
  +        
  +<tr>
             
  -<li>DOM contains an entire document. FOP is able to process individual fo:page-sequence objects discretely, without the need to have the entire document in memory. For documents that have only one fo:page-sequence object, FOP's approach is no advantage, but in other cases it is a huge advantage. A 500-page book that is broken into 100 5-page chapters, each in its own fo:page-sequence, essentially needs only 1% of the document memory that would be required if using DOM as input.</li>
  +<td colspan="1" rowspan="1">.</td>
  +          <td colspan="1" rowspan="1">XSL-FO document</td>
  +          <td colspan="1" rowspan="1">.</td>
           
  -</ul>
  -</div>
  -<a name="N10251"></a><a name="issue-fo-recycle"></a>
  -<h4>Process FO Elements ASAP</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>The issue here is that we wish to recycle FO Tree memory as much as possible. There are at least three possible places that FO Tree fragments can be passed to the Layout process, and their memory recycled:</p>
  -<ul>
  +</tr>
  +        
  +<tr>
             
  -<li>
  -            
  -<strong>fo:block</strong> It might be tempting to start laying out pages as soon as the first fo:block object is finished. However, there are many downstream things that can affect the placement of that block on a page, such as graphics and footnotes. So, in order to maintain conformance to the XSL-FO specification, and create high-quality output, we must see more of the document.</li>
  +<td colspan="1" rowspan="1"><a href="parsing.html">Parsing</a></td>
  +          <td colspan="1" rowspan="1"><a href="fotree.html">FO Tree</a></td>
  +          <td colspan="1" rowspan="1">.</td>
  +        
  +</tr>
  +        
  +<tr>
             
  -<li>
  -            
  -<strong>fo:root</strong> The other extreme is to wait until the entire document is read in before processing any of it. This essentially means that there is no memory recycling. Processing the document correctly is more important than saving memory, so this option would be used if there were no better alternative.</li>
  +<td colspan="1" rowspan="1"><a href="properties.html#refine">Refinement</a></td>
  +          <td colspan="1" rowspan="1"><a href="properties.html#refined-fo-tree">Refined FO Tree</a></td>
  +          <td colspan="1" rowspan="1">.</td>
  +        
  +</tr>
  +        
  +<tr>
             
  -<li>
  -            
  -<strong>fo:page-sequence</strong> The page-sequence object provides a nice clean break in the document. Content from one page-sequence will never interfere with nor affect the placement of the content of another. FOP uses this option as the optimum way to maintain compliance with the standard and to minimize memory consumption.</li>
  +<td colspan="1" rowspan="1"><a href="layout.html">Layout</a></td>
  +          <td colspan="1" rowspan="1"><a href="areas.html">Area Tree</a></td>
  +          <td colspan="1" rowspan="1">Layout and Area Tree are not needed or used for the structural outputs (MIF and RTF), as they are not paginated.</td>
           
  -</ul>
  -</div>
  -<a name="N10270"></a><a name="issue-fo-serialize"></a>
  -<h4>Serialize FO Tree as Necessary</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>This issue is implied by the requirement to process documents of arbitrary size. Unless some arbitrary limit is placed on the size of page-sequence objects, FOP must be able to serialize FO tree fragments as necessary.</p>
  -</div>
  -<a name="N1027A"></a><a name="issue-simple-layout"></a>
  -<h4>Keep Layouts Simple</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>Layout should handle floats, footnotes and keeps in a simple, straightforward way.</p>
  -</div>
  -<a name="N10284"></a><a name="issue-simple-id-refs"></a>
  -<h4>Keep ID References Simple</h4>
  -<div style="margin-left: 0 ; border: 2px"></div>
  -<a name="N1028B"></a><a name="issue-area-recycle"></a>
  -<h4>Render Pages ASAP</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>The issue here is that we wish to recycle the Area Tree memory as much as possible. The problem is that forward references prevent pages from being resolved until the forward references are resolved. If memory is insufficient to store unresolved pages, Area Tree fragments must be serialized until resolved.</p>
  -<p>FOP developers have discussed adding the capability of using an Area Tree to render to more than one output target in the same run, which would be a complicating factor in disposal of pages as they are rendered.</p>
  -</div>
  -<a name="N10298"></a><a name="issue-renderers-responsible"></a>
  -<h4>Renderers are Responsible</h4>
  -<div style="margin-left: 0 ; border: 2px">
  -<p>Each renderer is totally responsible for its output format.</p>
  -</div>
  -<a name="N102A2"></a><a name="issue-output-stream"></a>
  -<h4>Send Output to a Stream</h4>
  -<div style="margin-left: 0 ; border: 2px"></div>
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1"><a href="renderers.html">Renderer</a></td>
  +          <td colspan="1" rowspan="1">Output: PDF, Postscript, Print, etc.</td>
  +          <td colspan="1" rowspan="1">.</td>
  +        
  +</tr>
  +      
  +</table>
  +<p>In general, each piece of data will be processed in the same way.
  +However, some information may be used more than once, and some may be used out of order.
  +To reduce memory, one process may start before the previous process is completed.</p>
  +<p>For a detailed discussion of the design of any component, follow its link in the table above.
  +Each component outlines the design issues which have already been addressed.
  +These resolution of these design issues is in support of the primary and secondary goals, so they are not necessarily written in stone.
  +However, most of them have been discussed at length among the developers, and are reasonably well settled.</p>
   </div>
     
   </div>
  
  
  
  1.6       +199 -420  xml-site/targets/fop/design/index.pdf
  
  	<<Binary file>>
  
  
  1.14      +82 -53    xml-site/targets/fop/design/layout.html
  
  Index: layout.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/layout.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- layout.html	23 Apr 2003 03:40:07 -0000	1.13
  +++ layout.html	29 Apr 2003 16:45:30 -0000	1.14
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Layout</title>
  +<title>FOP Design: Layout</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  +<a href="svg.html">SVG</a>
   </li>
  -    
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,17 +229,34 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>Layout</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="layout.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: Layout</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="layout.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Layout Process in FOP</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
   <ul class="minitoc">
   <li>
  +<a href="#into">Introduction</a>
  +</li>
  +<li>
  +<a href="#issues">Design Issues</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#issue-simple-layout">Keep Layouts Simple</a>
  +</li>
  +<li>
  +<a href="#issue-simple-id-refs">Keep ID References Simple</a>
  +</li>
  +<li>
  +<a href="#issue-area-recycle">Render Pages ASAP</a>
  +</li>
  +</ul>
  +</li>
  +<li>
   <a href="#lm">Layout Managers</a>
   </li>
   <li>
  @@ -330,31 +341,49 @@
   </li>
   </ul>
       
  +<a name="N101C5"></a><a name="into"></a>
  +<h3>Introduction</h3>
  +<div style="margin-left: 0 ; border: 2px">
   <p>The role of the layout managers is to build the Area Tree by using the information from the FO Tree.
   The layout managers decide where information is placed in the area tree.</p>
  -    
   <p>A layout manager is typically associated with an FO Object but not always.</p>
  -    
   <p>The layout managers are in between the FO Tree and the Area Tree.
   They get information from the FO Tree and create areas and build the pages.
   They hold the state of the layout process as it builds up the areas and pages.
   They also manage the handling of breaks and spacing between areas.</p>
  -    
   <p>FO Objects can have two types of properties, ones that relate to the layout and ones that relate to the rendering.
   The layout related properties area used by the layout managers to determine how and where to create the areas.
   The render related properties should be passed through to the renderer in the most efficient way possible.</p>
  -    
   <p>The aim of the layout system is to be self contained and allow for easy changes or extensions for future development.
   For example the line breaking should be decided at a particular point in the process that makes it easier to handle other languages.</p>
  -    
   <p>The layout begins once the hierarchy of FO objects has been constructed.
   Note: it may be possible to start immediately after a block formatting object has been added to the flow but this is not currently in the scope of the layout.
   It is also possible to layout all pages in a page sequence after each page sequence has been added from the xml.</p>
  -    
   <p>The layout process is handled by a set of layout managers.
   The block level layout managers are used to create the block areas which are added to the region area of a page.</p>
  +<p>The traversal is done by the layout or structure process only in the flow elements.</p>
  +</div>
  +    
  +<a name="N101E4"></a><a name="issues"></a>
  +<h3>Design Issues</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<a name="N101EA"></a><a name="issue-simple-layout"></a>
  +<h4>Keep Layouts Simple</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Layout should handle floats, footnotes and keeps in a simple, straightforward way.</p>
  +</div>
  +<a name="N101F4"></a><a name="issue-simple-id-refs"></a>
  +<h4>Keep ID References Simple</h4>
  +<div style="margin-left: 0 ; border: 2px"></div>
  +<a name="N101FB"></a><a name="issue-area-recycle"></a>
  +<h4>Render Pages ASAP</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The issue here is that we wish to recycle the Area Tree memory as much as possible. The problem is that forward references prevent pages from being resolved until the forward references are resolved. If memory is insufficient to store unresolved pages, Area Tree fragments must be serialized until resolved.</p>
  +<p>FOP developers have discussed adding the capability of using an Area Tree to render to more than one output target in the same run, which would be a complicating factor in disposal of pages as they are rendered.</p>
  +</div>
  +</div>
       
  -<a name="N101DD"></a><a name="lm"></a>
  +<a name="N10209"></a><a name="lm"></a>
   <h3>Layout Managers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The layout managers are set up from the hierarchy of the formatting object tree.
  @@ -371,7 +400,7 @@
   <p>The objects in the area tree that are organised by the manager will mostly contain the information about there layout such as spacing and keeps, this information will be thrown away once the layout for a page is finalised.</p>
   </div>
       
  -<a name="N101F3"></a><a name="creating"></a>
  +<a name="N1021F"></a><a name="creating"></a>
   <h3>Creating Managers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The managers are created by the page sequence.
  @@ -382,7 +411,7 @@
   <p>Any nested block areas or inline areas may be handled by the layout manager at a later stage.</p>
   </div>
       
  -<a name="N10203"></a><a name="using"></a>
  +<a name="N1022F"></a><a name="using"></a>
   <h3>Using Managers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Block area layout managers are used to create a block area, other block level managers may ask their child layout managers to create block areas which are then added to the area tree(subset).</p>
  @@ -390,7 +419,7 @@
   A manager can split an area that it has created will keep a status about what has been added to the current area tree.</p>
   </div>
       
  -<a name="N10210"></a><a name="page"></a>
  +<a name="N1023C"></a><a name="page"></a>
   <h3>Page Layout</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Once the Page layout manager, belonging to the page sequence, is ready then we can start laying out each page.
  @@ -413,13 +442,13 @@
   and sizes can be adjusted.</p>
   </div>
       
  -<a name="N1022B"></a><a name="page-balance"></a>
  +<a name="N10257"></a><a name="page-balance"></a>
   <h3>Balancing Page</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The page is vertically justified so that it distributes the areas on the page for the best result when considering keeps and spacing.</p>
   </div>
       
  -<a name="N10235"></a><a name="finding-break"></a>
  +<a name="N10261"></a><a name="finding-break"></a>
   <h3>Finding Break</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>First the keeps are checked.
  @@ -438,7 +467,7 @@
   regions will be present if it contains at least one area.</p>
   </div>
       
  -<a name="N1024B"></a><a name="optimize"></a>
  +<a name="N10277"></a><a name="optimize"></a>
   <h3>Optimising</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Once the areas for the page are finalised then the spacing will need to be adjusted.
  @@ -446,7 +475,7 @@
   All of the spacing in all the areas on the page is then adjusted by the appropriate percentage value.</p>
   </div>
       
  -<a name="N10255"></a><a name="multi-column"></a>
  +<a name="N10281"></a><a name="multi-column"></a>
   <h3>Multi-Column Pages</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>In the case of multi-column pages the column breaks and eventually the page break must be found in a slightly different way.</p>
  @@ -457,7 +486,7 @@
   If any before floats or footnotes are removed as a result of the new breaks and optimised spacing then all the columns should still be layed out for the same column height.</p>
   </div>
       
  -<a name="N10265"></a><a name="page-complete"></a>
  +<a name="N10291"></a><a name="page-complete"></a>
   <h3>Completing Page</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>After the region body has been finished the static areas can be layed out.
  @@ -467,7 +496,7 @@
   The body region should be in the order before float, main then footnote.</p>
   </div>
       
  -<a name="N10275"></a><a name="line-area"></a>
  +<a name="N102A1"></a><a name="line-area"></a>
   <h3>Line Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Creating a line areas uses a similair concept.
  @@ -478,7 +507,7 @@
   <p>Once a line has been layed out for a particular width then that line is fixed for the page (except for unresolved page references).</p>
   </div>
       
  -<a name="N10285"></a><a name="before-float-footnote"></a>
  +<a name="N102B1"></a><a name="before-float-footnote"></a>
   <h3>Before Floats and Footnotes</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The before float region and footnote region are handled by the page layoutmanger.
  @@ -490,7 +519,7 @@
   <p>A layout manager handles the adding and removing of footnotes/floats, this in turn effects the available space in the main reference area.</p>
   </div>
       
  -<a name="N10295"></a><a name="side-float"></a>
  +<a name="N102C1"></a><a name="side-float"></a>
   <h3>Side Floats</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>If a float anchor is present in a particular line area then the available space for that line (and other in the block) will be reduced.
  @@ -504,7 +533,7 @@
   relevant line areas.</p>
   </div>
       
  -<a name="N102A7"></a><a name="unresolved-area"></a>
  +<a name="N102D3"></a><a name="unresolved-area"></a>
   <h3>Unresolved Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Once the layout of the page is complete there may be unresolved areas.</p>
  @@ -518,7 +547,7 @@
   re-aligned to accomodate the change.</p>
   </div>
       
  -<a name="N102BD"></a><a name="id-link-area"></a>
  +<a name="N102E9"></a><a name="id-link-area"></a>
   <h3>ID and Link Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Any formatting object that has an ID or any inline link defines an area that will be required when rendering and resolving id references.</p>
  @@ -527,27 +556,27 @@
   This shape consists of the boundary of all inline (or block) areas that the shape is defined for.</p>
   </div>
       
  -<a name="N102CA"></a><a name="inline-area"></a>
  +<a name="N102F6"></a><a name="inline-area"></a>
   <h3>Inline Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>This is the definition of all inline areas that will exist in the area.</p>
   </div>
       
  -<a name="N102D4"></a><a name="fixed-area"></a>
  +<a name="N10300"></a><a name="fixed-area"></a>
   <h3>Fixed Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>instream-foreign-object, external-graphic, inline-container</p>
   <p>These areas have a fixed width and height. They also have a viewport.</p>
   </div>
       
  -<a name="N102E1"></a><a name="stretch-area"></a>
  +<a name="N1030D"></a><a name="stretch-area"></a>
   <h3>Stretch Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>leader, inline space</p>
   <p>These areas have a fixed height but the width may vary.</p>
   </div>
       
  -<a name="N102EE"></a><a name="character-area"></a>
  +<a name="N1031A"></a><a name="character-area"></a>
   <h3>Character Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>character</p>
  @@ -555,7 +584,7 @@
   There are implicit keeps with adjacent characters.</p>
   </div>
       
  -<a name="N102FB"></a><a name="anchor-area"></a>
  +<a name="N10327"></a><a name="anchor-area"></a>
   <h3>Anchor Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>float anchor, footnote anchor</p>
  @@ -563,7 +592,7 @@
   It keeps the position for footnotes and floats and has a keep with the associated inline area.</p>
   </div>
       
  -<a name="N10308"></a><a name="unresolved-page-num"></a>
  +<a name="N10334"></a><a name="unresolved-page-num"></a>
   <h3>Unresolved Page Numbers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>page-number-citation</p>
  @@ -571,7 +600,7 @@
   The size will adjust when the value is resolved.</p>
   </div>
       
  -<a name="N10315"></a><a name="block-area"></a>
  +<a name="N10341"></a><a name="block-area"></a>
   <h3>Block Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>When a block creating element is complete then it is possible to build the
  @@ -600,25 +629,25 @@
   <p>Once the layout has been finalised then this information can be discarded.</p>
   </div>
       
  -<a name="N10343"></a><a name="page-area"></a>
  +<a name="N1036F"></a><a name="page-area"></a>
   <h3>Page Areas</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Contains inforamtion about all the block areas in the body, before area and footer area.</p>
   <p>Has a list of the unresolved page references and a list of id refences that can be used to obtain the area associated with that id.</p>
   </div>
       
  -<a name="N10350"></a><a name="test-cases"></a>
  +<a name="N1037C"></a><a name="test-cases"></a>
   <h3>Test Cases</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Here a few layout possibilities areas explored to determine how the layout process will handle these situations.</p>
  -<a name="N10359"></a><a name="test-simple"></a>
  +<a name="N10385"></a><a name="test-simple"></a>
   <h4>Simple Pages</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>All blocks (including nested) are placed on the page with minimum spacing and the last block has the minimum number of lines past the page end.
   The lowest keep value is then found within the body area limits.
   Then the next equally low keep is found to determine if the spacing will be closer to the optimum values.</p>
   </div>
  -<a name="N10363"></a><a name="test-before-float-footnote"></a>
  +<a name="N1038F"></a><a name="test-before-float-footnote"></a>
   <h4>Before Floats/Footnotes</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>After filling the page with the block areas then the new body height is used to find the best position to break.
  @@ -627,7 +656,7 @@
   Areas are removed towards the new breaking point until the areas fit on the page.
   When finding the optimum spacing the removal of before floats and footnotes must also be  onsidered.</p>
   </div>
  -<a name="N1036D"></a><a name="test-multi-column"></a>
  +<a name="N10399"></a><a name="test-multi-column"></a>
   <h4>Multicolumn</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>First the page is filled with all columns for the intial page area.
  @@ -636,7 +665,7 @@
   Once all the columns are finished then all the columns are adjusted to fit in the same height columns.
   This handles the situation where before floats or footnotes may have been removed.</p>
   </div>
  -<a name="N10377"></a><a name="test-last-page"></a>
  +<a name="N103A3"></a><a name="test-last-page"></a>
   <h4>Last Page</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>If in the process of adding areas to a page it is found that there are no more areas in the flow then this page will need to be changed to the last page (if applicable).
  
  
  
  1.7       +569 -387  xml-site/targets/fop/design/layout.pdf
  
  	<<Binary file>>
  
  
  1.14      +17 -23    xml-site/targets/fop/design/optimise.html
  
  Index: optimise.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/optimise.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- optimise.html	23 Apr 2003 03:40:07 -0000	1.13
  +++ optimise.html	29 Apr 2003 16:45:31 -0000	1.14
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>FOP Optimisations</title>
  +<title>FOP Design: Optimisations</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <span class="sel"><font color="#ffcc00">Optimisations</font></span>
   </li>
         
  @@ -235,23 +229,23 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>FOP Optimisations</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="optimise.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: Optimisations</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="optimise.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Notes for Optimising FOP</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
   <ul class="minitoc">
   <li>
  -<a href="#Process+Optimisations">Process Optimisations</a>
  +<a href="#intro">Introduction</a>
   </li>
   </ul>
   
  -<a name="N101C8"></a><a name="Process+Optimisations"></a>
  -<h3>Process Optimisations</h3>
  +<a name="N101C5"></a><a name="intro"></a>
  +<h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
   FOP should be able to handle very large documents. A document can be
  
  
  
  1.5       +27 -27    xml-site/targets/fop/design/optimise.pdf
  
  	<<Binary file>>
  
  
  1.14      +166 -43   xml-site/targets/fop/design/properties.html
  
  Index: properties.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/properties.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- properties.html	23 Apr 2003 03:40:08 -0000	1.13
  +++ properties.html	29 Apr 2003 16:45:31 -0000	1.14
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Properties</title>
  +<title>FOP Design: Properties</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  +<a href="svg.html">SVG</a>
   </li>
  -    
  -</ul>
  -</li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,17 +229,32 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>Properties</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="properties.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: Properties</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="properties.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Properties overview</h3>
   <p>
   <font size="-2">by&nbsp;Karen Lease</font>
   </p>
   <ul class="minitoc">
   <li>
  +<a href="#intro">Introduction</a>
  +</li>
  +<li>
  +<a href="#terms-related">Related Terms</a>
  +</li>
  +<li>
  +<a href="#issues">Issues</a>
  +</li>
  +<li>
  +<a href="#process-overview">Overview of Processing</a>
  +</li>
  +<li>
  +<a href="#plb">PropertyListBuilder</a>
  +</li>
  +<li>
   <a href="#datatypes">Property datatypes</a>
   </li>
   <li>
  @@ -286,20 +295,115 @@
   <li>
   <a href="#compound">Compound property types</a>
   </li>
  +<li>
  +<a href="#refine">Refinement</a>
  +</li>
  +<li>
  +<a href="#refined-fo-tree">Refined FO Tree</a>
  +</li>
  +<li>
  +<a href="#implement">Implementation Notes</a>
  +</li>
  +</ul>
  +    
  +<a name="N101C5"></a><a name="intro"></a>
  +<h3>Introduction</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>As the input XSL-FO is being parsed and the FO Tree is being built, the attributes of the FO elements are passed by the parser to the related FO object.
  +The java object that represent the FO object then converts the attributes into properties that are stored in the FO Tree.</p>
  +</div>
  +    
  +<a name="N101CF"></a><a name="terms-related"></a>
  +<h3>Related Terms</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>It may be helpful here to show the rough relationship between terms used to describe the various trees in XSL-FO processing, all of which come from the XML and XSL-FO standards. In the table below, the <em>terms</em> (but not the actual items) in each column are roughly equivalent to each other:</p>
  +<table class="ForrestTable" cellspacing="1" cellpadding="4">
  +        
  +<tr>
  +          
  +<th colspan="1" rowspan="1">Tree Concept</th>
  +          <th colspan="1" rowspan="1">Thing (Noun)</th>
  +          <th colspan="1" rowspan="1">Descriptive Item (Adjective)</th>
  +        
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1">XML</td>
  +          <td colspan="1" rowspan="1">Element</td>
  +          <td colspan="1" rowspan="1">Attribute</td>
  +        
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1">FO Tree</td>
  +          <td colspan="1" rowspan="1">Object</td>
  +          <td colspan="1" rowspan="1">Property</td>
  +        
  +</tr>
  +        
  +<tr>
  +          
  +<td colspan="1" rowspan="1">Area Tree</td>
  +          <td colspan="1" rowspan="1">Area</td>
  +          <td colspan="1" rowspan="1">Trait</td>
  +        
  +</tr>
  +      
  +</table>
  +</div>
  +
  +    
  +<a name="N10227"></a><a name="issues"></a>
  +<h3>Issues</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The following are some issues when dealing with properties:</p>
  +<ul>
  +        
  +<li>Initial Property Set</li>
  +        
  +<li>Inheritance: Some properties can be inherited from parent objects.</li>
  +        
  +<li>Adoption: The parentage for some elements can move around.
  +Markers are one example.</li>
  +        
  +<li>Multiple Namespaces: The properties for foreign namespaces must be handled.</li>
  +        
  +<li>Expressions: XSL-FO expressions can be included in properties.</li>
  +      
  +</ul>
  +</div>
  +
  +    
  +<a name="N10243"></a><a name="process-overview"></a>
  +<h3>Overview of Processing</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The general flow of property processing is as follows:</p>
  +<ul>
  +        
  +<li>As part of <span class="codefrag">FOTreeBuilder.startElement()</span>, <span class="codefrag">FObj.handleAttrs</span> is passed a list of attributes to be processed for the new FObj.</li>
  +        
  +<li>FObj.handleAttrs gets a PropertyListBuilder and asks it to create a Property List from them. There is currently only one static PropertyListBuilder, which handles the fo: namespace.</li>
  +        
  +<li>FObj.handleAttrs then cross-references the PropertyList with the FObj.</li>
  +      
   </ul>
  +</div>
       
  -<p>During XML Parsing, the FO tree is constructed. For each FO object (some
  -subclass of FObj), the tree builder then passes the list of all
  -attributes specified on the FO element to the handleAttrs method. This
  -method converts the attribute specifications into a PropertyList.</p>
  -    
  -<p>The actual work is done by a PropertyListBuilder (PLB for short). The
  -basic idea of the PLB is to handle each attribute in the list in turn,
  -find an appropriate "Maker" for it, call the Maker to convert the
  -attribute value into a Property object of the correct type, and store
  -that Property in the PropertyList.</p>
  +<a name="N1025F"></a><a name="plb"></a>
  +<h3>PropertyListBuilder</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Each plb object contains a hash of
  +property names and <em>their</em> respective Makers. It may also
  +contain element-specific property maker hashes; these are based on the
  +<em>local name</em> of the flow object, ie. <em>table-row</em>, not
  +<em>fo:table-row</em>. If an element-specific property mapping exists,
  +it is preferred to the generic mapping.</p>
  +<p>The PLB handles loops through each attribute in the list, finds an appropriate "Maker" for it, then calls the Maker to convert the attribute value into a Property object of the correct type, and stores that Property in the PropertyList.</p>
  +</div>
       
  -<a name="N101CE"></a><a name="datatypes"></a>
  +<a name="N10278"></a><a name="datatypes"></a>
   <h3>Property datatypes</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The property datatypes are defined in the
  @@ -346,7 +450,7 @@
   SpaceProperty will return the optimum value if asked for a Length.</p>
   </div>
       
  -<a name="N10202"></a><a name="makers"></a>
  +<a name="N102AC"></a><a name="makers"></a>
   <h3>Property Makers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The Property class contains a nested class called
  @@ -376,7 +480,7 @@
   description files.</p>
   </div>
       
  -<a name="N10218"></a><a name="attribute-list"></a>
  +<a name="N102C2"></a><a name="attribute-list"></a>
   <h3>Processing the attribute list</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The PLB first looks to see if the font-size property is specified, since
  @@ -387,7 +491,7 @@
   (space-before in this case) and processes that first.</p>
   </div>
       
  -<a name="N10222"></a><a name="maker-design"></a>
  +<a name="N102CC"></a><a name="maker-design"></a>
   <h3>How the Property Maker works</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>There is a family of Maker objects for each of the property datatypes,
  @@ -423,7 +527,7 @@
   font-size _are_ resolved during the FO tree building however.</p>
   </div>
       
  -<a name="N1023B"></a><a name="property-list-struct"></a>
  +<a name="N102E5"></a><a name="property-list-struct"></a>
   <h3>Structure of the PropertyList</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The PropertyList extends HashMap and its basic function is to associate
  @@ -446,10 +550,10 @@
   returned.</p>
   </div>
       
  -<a name="N1024F"></a><a name="property-spec"></a>
  +<a name="N102F9"></a><a name="property-spec"></a>
   <h3>XML property specification format</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<a name="N10255"></a><a name="generic"></a>
  +<a name="N102FF"></a><a name="generic"></a>
   <h4>Generic properties</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>In the properties xml files, one can define generic property
  @@ -499,7 +603,7 @@
   generated for those SVG properties which are not based on generic
   classes defined in svg.</p>
   </div>
  -<a name="N10280"></a><a name="element-specific"></a>
  +<a name="N1032A"></a><a name="element-specific"></a>
   <h4>Element-specific properties</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>Properties may be defined for all flow objects or only for
  @@ -518,7 +622,7 @@
   functionality if the same property is to be used in different sets of
   element-specific mappings.</p>
   </div>
  -<a name="N10299"></a><a name="reference"></a>
  +<a name="N10343"></a><a name="reference"></a>
   <h4>Reference properties</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>A property element may have a type attribute with the value
  @@ -535,7 +639,7 @@
     reference the defined FO properties. The generating mapping for the
     SVG properties will use the FO Maker classes.</p>
   </div>
  -<a name="N102B2"></a><a name="corresponding"></a>
  +<a name="N1035C"></a><a name="corresponding"></a>
   <h4>Corresponding properties</h4>
   <div style="margin-left: 0 ; border: 2px">
   <p>Some properties have both <em>absolute</em> and
  @@ -562,7 +666,7 @@
   </div>
   </div>
       
  -<a name="N102DB"></a><a name="mapping"></a>
  +<a name="N10385"></a><a name="mapping"></a>
   <h3>Mapping</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The XSL script <span class="codefrag">propmap.xsl</span> is used to generate
  @@ -581,7 +685,7 @@
   mappings as specified in the properties XML files.</p>
   </div>
       
  -<a name="N102EE"></a><a name="enumerated"></a>
  +<a name="N10398"></a><a name="enumerated"></a>
   <h3>Enumerated values</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>For any property whose datatype is <span class="codefrag">Enum</span> or which
  @@ -607,7 +711,7 @@
   is <span class="codefrag">KeepTogether.WithinPage.AUTO</span>.</p>
   </div>
       
  -<a name="N10307"></a><a name="compound"></a>
  +<a name="N103B1"></a><a name="compound"></a>
   <h3>Compound property types</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Some XSL FO properties are specified by compound datatypes. In the FO file,
  @@ -641,6 +745,25 @@
   the result is a Property object, and the actual value may be accessed
   (in this example) by using the "getLength()" accessor.</p>
   </div>
  +    
  +<a name="N103E5"></a><a name="refine"></a>
  +<h3>Refinement</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The <strong>Refinement</strong> step is part of reading and using the properties which may happen immediately or during the layout process.</p>
  +</div>
  +    
  +<a name="N103F2"></a><a name="refined-fo-tree"></a>
  +<h3>Refined FO Tree</h3>
  +<div style="margin-left: 0 ; border: 2px"></div>
  +    
  +<a name="N103F9"></a><a name="implement"></a>
  +<h3>Implementation Notes</h3>
  +<div style="margin-left: 0 ; border: 2px"></div>
  +      
  +<p>All properties are specified in src/codegen/foproperties.xml.
  +The related classes are created automatically during the build process.</p>
  +      
  +<p>The base class for all properties is <em>fo.Property</em>, and the base class for all the property makers is the inner class <em>Property.Maker</em>.</p>
     
   </div>
   </td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  
  
  
  1.7       +470 -241  xml-site/targets/fop/design/properties.pdf
  
  	<<Binary file>>
  
  
  1.14      +46 -28    xml-site/targets/fop/design/renderers.html
  
  Index: renderers.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/renderers.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- renderers.html	23 Apr 2003 03:40:08 -0000	1.13
  +++ renderers.html	29 Apr 2003 16:45:31 -0000	1.14
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>Renderers</title>
  +<title>FO Design: Renderers</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,12 +229,12 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>Renderers</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="renderers.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FO Design: Renderers</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="renderers.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Design of Renderers</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
  @@ -249,6 +243,17 @@
   <a href="#intro">Introduction</a>
   </li>
   <li>
  +<a href="#issues">Design Issues</a>
  +<ul class="minitoc">
  +<li>
  +<a href="#issue-renderers-responsible">Renderers are Responsible</a>
  +</li>
  +<li>
  +<a href="#issue-output-stream">Send Output to a Stream</a>
  +</li>
  +</ul>
  +</li>
  +<li>
   <a href="#fonts">Fonts</a>
   </li>
   <li>
  @@ -271,7 +276,7 @@
   </li>
   </ul>
       
  -<a name="N101C8"></a><a name="intro"></a>
  +<a name="N101C5"></a><a name="intro"></a>
   <h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>A renderer is primarily designed to convert a given area tree into the output
  @@ -293,21 +298,34 @@
   output format and associated data and flow.</p>
   </div>
       
  -<a name="N101DB"></a><a name="fonts"></a>
  +<a name="N101D8"></a><a name="issues"></a>
  +<h3>Design Issues</h3>
  +<div style="margin-left: 0 ; border: 2px">
  +<a name="N101DE"></a><a name="issue-renderers-responsible"></a>
  +<h4>Renderers are Responsible</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>Each renderer is totally responsible for its output format.</p>
  +</div>
  +<a name="N101E8"></a><a name="issue-output-stream"></a>
  +<h4>Send Output to a Stream</h4>
  +<div style="margin-left: 0 ; border: 2px"></div>
  +</div>
  +    
  +<a name="N101F0"></a><a name="fonts"></a>
   <h3>Fonts</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Because font metrics (and therefore layout) are obtained in two different ways depending on the renderer, the renderer actually sets up the fonts being used. The font metrics are used
   during the layout process to determine the size of characters.</p>
   </div>
       
  -<a name="N101E5"></a><a name="context"></a>
  +<a name="N101FA"></a><a name="context"></a>
   <h3>Render Context</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The render context is used by handlers.
   It contains information about the current state of the renderer, such as the page, the position, and any other miscellanous objects that are required to draw into the page.</p>
   </div>
       
  -<a name="N101EF"></a><a name="XML+Handling"></a>
  +<a name="N10204"></a><a name="XML+Handling"></a>
   <h3>XML Handling</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>A document may contain information in the form of XML for an image or instream foreign object.
  @@ -317,7 +335,7 @@
   This separation means that other XML handlers can easily be added.</p>
   </div>
       
  -<a name="N101FC"></a><a name="Extensions"></a>
  +<a name="N10211"></a><a name="Extensions"></a>
   <h3>Extensions</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>Document level extensions are handled with an extension handler.
  @@ -326,7 +344,7 @@
   Then the extension handler is ready to put the information into the pdf document.</p>
   </div>
       
  -<a name="N10206"></a><a name="implement"></a>
  +<a name="N1021B"></a><a name="implement"></a>
   <h3>Renderer Implementations</h3>
   <div style="margin-left: 0 ; border: 2px">
   <table class="ForrestTable" cellspacing="1" cellpadding="4">
  @@ -460,7 +478,7 @@
   </table>
   </div>
       
  -<a name="N1037B"></a><a name="add"></a>
  +<a name="N10390"></a><a name="add"></a>
   <h3>Adding a Renderer</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>You can add other renderers by implementing the Renderer interface.
  @@ -499,7 +517,7 @@
   </ul>
   </div>
       
  -<a name="N103B2"></a><a name="multiple"></a>
  +<a name="N103C7"></a><a name="multiple"></a>
   <h3>Multiple Renderers</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>The layout of the document depends mainly on the font being used.
  
  
  
  1.7       +302 -152  xml-site/targets/fop/design/renderers.pdf
  
  	<<Binary file>>
  
  
  1.14      +17 -23    xml-site/targets/fop/design/useragent.html
  
  Index: useragent.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/useragent.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- useragent.html	23 Apr 2003 03:40:08 -0000	1.13
  +++ useragent.html	29 Apr 2003 16:45:31 -0000	1.14
  @@ -2,7 +2,7 @@
   <html>
   <head>
   <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  -<title>FO User Agent</title>
  +<title>FOP Design: User Agent</title>
   <link type="text/css" href="../skin/page.css" rel="stylesheet">
   </head>
   <body text="#000000" bgcolor="#FFFFFF">
  @@ -124,11 +124,11 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Compliance</font>
  +<font color="#CFDCED">Core Process</font>
   <ul>
         
   <li>
  -<a href="understanding/xml_parsing.html">XML Parsing</a>
  +<a href="parsing.html">XML Parsing</a>
   </li>
         
   <li>
  @@ -144,6 +144,10 @@
   </li>
         
   <li>
  +<a href="breakpos.html">Break Possibility</a>
  +</li>
  +      
  +<li>
   <a href="areas.html">Area Tree</a>
   </li>
         
  @@ -154,26 +158,20 @@
   </ul>
   </li>
   <li>
  -<font color="#CFDCED">Extras</font>
  +<font color="#CFDCED">Miscellaneous</font>
   <ul>
         
   <li>
  -<a href="understanding/images.html">Images</a>
  +<a href="images.html">Images</a>
   </li>
         
   <li>
  -<a href="understanding/pdf_library.html">PDF Library</a>
  +<a href="pdf-library.html">PDF Library</a>
   </li>
         
   <li>
  -<a href="understanding/svg.html">SVG</a>
  -</li>
  -    
  -</ul>
  +<a href="svg.html">SVG</a>
   </li>
  -<li>
  -<font color="#CFDCED">Miscellaneous</font>
  -<ul>
         
   <li>
   <a href="embedding.html">Embedding</a>
  @@ -184,10 +182,6 @@
   </li>
         
   <li>
  -<a href="breakpos.html">Break Possibility</a>
  -</li>
  -      
  -<li>
   <a href="optimise.html">Optimisations</a>
   </li>
         
  @@ -235,23 +229,23 @@
   <table class="title" summary="">
   <tr>
   <td valign="middle">
  -<h1>FO User Agent</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="useragent.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +<h1>FOP Design: User Agent</h1>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="useragent.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  -<h3>Design of FO User Agent</h3>
   <p>
   <font size="-2">by&nbsp;Keiron Liddle</font>
   </p>
   <ul class="minitoc">
   <li>
  -<a href="#Purpose">Purpose</a>
  +<a href="#intro">Introduction</a>
   </li>
   </ul>
   
  -<a name="N101C8"></a><a name="Purpose"></a>
  -<h3>Purpose</h3>
  +<a name="N101C5"></a><a name="intro"></a>
  +<h3>Introduction</h3>
   <div style="margin-left: 0 ; border: 2px">
   <p>
   Technically the user agent is FOP in the role of determining the
  
  
  
  1.5       +38 -38    xml-site/targets/fop/design/useragent.pdf
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/fop/design/images.html
  
  Index: images.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>FOP Design: Images</title>
  <link type="text/css" href="../skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://xml.apache.org/"><img border="0" class="logoImage" alt="Apache XML" src="../images/group-logo.gif"></a></td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://xml.apache.org/fop/"><img border="0" class="logoImage" alt="FOP" src="../images/logo.jpg"></a></td>
  <!--================= end Project Logo ==================-->
  <!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  <form target="_blank" action="http://www.google.com/search" method="get">
  <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  <tr>
  <td colspan="3"><img height="10" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="xml.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Apache XML site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" src="../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../skin/images/search-right.gif"></td>
  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../dev/index.html"><font face="Arial, Helvetica, Sans-serif">Development</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="index.html"><font color="#000000">Design</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="alt.design/index.html"><font face="Arial, Helvetica, Sans-serif">Alt Design</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  <!--================= start Menu items ==================-->
  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
        
  <li>
  <a href="index.html">Introduction</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Core Process</font>
  <ul>
        
  <li>
  <a href="parsing.html">XML Parsing</a>
  </li>
        
  <li>
  <a href="fotree.html">FO Tree</a>
  </li>
        
  <li>
  <a href="properties.html">Properties</a>
  </li>
        
  <li>
  <a href="layout.html">Layout</a>
  </li>
        
  <li>
  <a href="breakpos.html">Break Possibility</a>
  </li>
        
  <li>
  <a href="areas.html">Area Tree</a>
  </li>
        
  <li>
  <a href="renderers.html">Renderers</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Miscellaneous</font>
  <ul>
        
  <li>
  <span class="sel"><font color="#ffcc00">Images</font></span>
  </li>
        
  <li>
  <a href="pdf-library.html">PDF Library</a>
  </li>
        
  <li>
  <a href="svg.html">SVG</a>
  </li>
        
  <li>
  <a href="embedding.html">Embedding</a>
  </li>
        
  <li>
  <a href="extending.html">Extending</a>
  </li>
        
  <li>
  <a href="optimise.html">Optimisations</a>
  </li>
        
  <li>
  <a href="useragent.html">User Agent</a>
  </li>
      
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-right.gif"></td>
  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="100%">
  <div class="content">
  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>FOP Design: Images</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="images.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
            print-friendly<br>
            PDF</a></td>
  </tr>
  </table>
  <ul class="minitoc">
  <li>
  <a href="#intro">Introduction</a>
  </li>
  <li>
  <a href="#Threading">Threading</a>
  </li>
  <li>
  <a href="#Caches">Caches</a>
  <ul class="minitoc">
  <li>
  <a href="#LRU">LRU</a>
  </li>
  <li>
  <a href="#Context">Context</a>
  </li>
  </ul>
  </li>
  <li>
  <a href="#Invalid+Images">Invalid Images</a>
  </li>
  <li>
  <a href="#Reading">Reading</a>
  </li>
  <li>
  <a href="#Data">Data</a>
  </li>
  <li>
  <a href="#Rendering">Rendering</a>
  <ul class="minitoc">
  <li>
  <a href="#PDF">PDF</a>
  </li>
  <li>
  <a href="#PS">PS</a>
  </li>
  <li>
  <a href="#awt">awt</a>
  </li>
  </ul>
  </li>
  </ul>
  
    
  <a name="N101BE"></a><a name="intro"></a>
  <h3>Introduction</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Images may only be needed to be loaded when the image is rendered to the
  output or to find the dimensions.<br>
  An image url may be invalid, this can be costly to find out so we need to
  keep a list of invalid image urls.</p>
  <p>We have a number of different caching schemes that are possible.</p>
  <p>All images are referred to using the url given in the XSL:FO after
  removing "url('')" wrapping. This does
  not include any sort of resolving such as relative -&gt; absolute. The
  external graphic in the FO Tree and the image area in the Area Tree only
  have the url as a reference.
  The images are handled through a static interface in ImageFactory.</p>
  </div>
  
  
  <a name="N101D0"></a><a name="Threading"></a>
  <h3>Threading</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>In a single threaded case with one document the image should be released
  as soon as the renderer caches it. If there are multiple documents then
  the images could be held in a weak cache in case another document needs to
  load the same image.</p>
  <p>In a multi threaded case many threads could be attempting to get the same
  image. We need to make sure an image will only be loaded once at a
  particular time. Once a particular document is finished then we can move
  all the images to a common weak cache.</p>
  </div>
  
  
  <a name="N101DD"></a><a name="Caches"></a>
  <h3>Caches</h3>
  <div style="margin-left: 0 ; border: 2px">
  <a name="N101E3"></a><a name="LRU"></a>
  <h4>LRU</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>All images are in a common cache regardless of context. To limit the size
  of the cache the LRU image is removed to keep the amount of memory used
  low. Each image can supply the amount of data held in memory.</p>
  </div>
  <a name="N101ED"></a><a name="Context"></a>
  <h4>Context</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>Images are cached according to the context, using the FOUserAgent as a key.
  Once the context is finished the images are added to a common weak hashmap
  so that other contexts can load these images or the data will be garbage
  collected if required.</p>
  <p>If images are to be used commonly then we cannot dispose of data in the
  FopImage when cached by the renderer. Also if different contexts have
  different base directories for resolving relative url's then the loading
  and caching must be separate. We can have a cache that shares images among
  all contexts or only loads an image for a context.</p>
  </div>
  <p>The cache uses an image loader so that it can synchronize the image
  loading on an image by image basis. Finding and adding an image loader to
  the cache is also synchronized to prevent thread problems.</p>
  </div>
  
  
  <a name="N101FE"></a><a name="Invalid+Images"></a>
  <h3>Invalid Images</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
  If an image cannot be loaded for some reason, for example the url is
  invalid or the image data is corrupt or an unknown type. Then it should
  only attempt to load the image once. All other attempts to get the image
  should return null so that it can be easily handled.<br>
  This will prevent any extra processing or waiting.</p>
  </div>
  
  
  <a name="N1020A"></a><a name="Reading"></a>
  <h3>Reading</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Once a stream is opened for the image url then a set of image readers is
  used to determine what type of image it is. The reader can peek at the
  image header or if necessary load the image. The reader can also get the
  image size at this stage.
  The reader then can provide the mime type to create the image object to
  load the rest of the information.</p>
  </div>
  
  
  <a name="N10214"></a><a name="Data"></a>
  <h3>Data</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>The data usually need for an image is the size and either a bitmap or the
  original data. Images such as jpeg and eps can be embedded into the
  document with the original data. SVG images are converted into a DOM which
  needs to be rendered to the PDF. Other images such as gif, tiff etc. are
  converted into a bitmap.
  Data is loaded by the FopImage by calling load(type) where type is the type of data to load.</p>
  </div>
  
  
  
  <a name="N1021E"></a><a name="Rendering"></a>
  <h3>Rendering</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Different renderers need to have the information in different forms.</p>
  <a name="N10227"></a><a name="PDF"></a>
  <h4>PDF</h4>
  <div style="margin-left: 0 ; border: 2px">
  <dl>
  <dt>original data</dt>  
  <dd>JPG, EPS</dd>
  
  <dt>bitmap</dt>  
  <dd>gif, tiff, bmp, png</dd>
  
  <dt>other</dt>  
  <dd>SVG</dd>
  </dl>
  </div>
  <a name="N10241"></a><a name="PS"></a>
  <h4>PS</h4>
  <div style="margin-left: 0 ; border: 2px">
  <dl>
  <dt>bitmap</dt>  
  <dd>JPG, gif, tiff, bmp, png</dd>
  
  <dt>other</dt> 
  <dd>SVG</dd>
  </dl>
  </div>
  <a name="N10255"></a><a name="awt"></a>
  <h4>awt</h4>
  <div style="margin-left: 0 ; border: 2px">
  <dl>
  <dt>bitmap</dt> 
  <dd>JPG, gif, tiff, bmp, png</dd>
  
  <dt>other</dt>  
  <dd>SVG</dd>
  </dl>
  </div>
  <p>The renderer uses the url to retrieve the image from the ImageFactory and
  then load the required data depending on the image mime type. If the
  renderer can insert the image into the document and use that data for all
  future references of the same image then it can cache the reference in the
  renderer and the image can be released from the image cache.</p>
  </div>
  
      
  </div>
  </td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../skin/images/spacer.gif"><a href="../skin/images/label.gif"></a><a href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a href="../skin/images/chapter_open.gif"></a><a href="../skin/images/current.gif"></a><a href="..//favicon.ico"></a></td>
  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/fop/design/images.pdf
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/fop/design/parsing.html
  
  Index: parsing.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>FOP Design: Input Parsing</title>
  <link type="text/css" href="../skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://xml.apache.org/"><img border="0" class="logoImage" alt="Apache XML" src="../images/group-logo.gif"></a></td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://xml.apache.org/fop/"><img border="0" class="logoImage" alt="FOP" src="../images/logo.jpg"></a></td>
  <!--================= end Project Logo ==================-->
  <!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  <form target="_blank" action="http://www.google.com/search" method="get">
  <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  <tr>
  <td colspan="3"><img height="10" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="xml.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Apache XML site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" src="../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../skin/images/search-right.gif"></td>
  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../dev/index.html"><font face="Arial, Helvetica, Sans-serif">Development</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="index.html"><font color="#000000">Design</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="alt.design/index.html"><font face="Arial, Helvetica, Sans-serif">Alt Design</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  <!--================= start Menu items ==================-->
  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
        
  <li>
  <a href="index.html">Introduction</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Core Process</font>
  <ul>
        
  <li>
  <span class="sel"><font color="#ffcc00">XML Parsing</font></span>
  </li>
        
  <li>
  <a href="fotree.html">FO Tree</a>
  </li>
        
  <li>
  <a href="properties.html">Properties</a>
  </li>
        
  <li>
  <a href="layout.html">Layout</a>
  </li>
        
  <li>
  <a href="breakpos.html">Break Possibility</a>
  </li>
        
  <li>
  <a href="areas.html">Area Tree</a>
  </li>
        
  <li>
  <a href="renderers.html">Renderers</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Miscellaneous</font>
  <ul>
        
  <li>
  <a href="images.html">Images</a>
  </li>
        
  <li>
  <a href="pdf-library.html">PDF Library</a>
  </li>
        
  <li>
  <a href="svg.html">SVG</a>
  </li>
        
  <li>
  <a href="embedding.html">Embedding</a>
  </li>
        
  <li>
  <a href="extending.html">Extending</a>
  </li>
        
  <li>
  <a href="optimise.html">Optimisations</a>
  </li>
        
  <li>
  <a href="useragent.html">User Agent</a>
  </li>
      
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-right.gif"></td>
  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="100%">
  <div class="content">
  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>FOP Design: Input Parsing</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="parsing.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
            print-friendly<br>
            PDF</a></td>
  </tr>
  </table>
  <ul class="minitoc">
  <li>
  <a href="#intro">Introduction</a>
  </li>
  <li>
  <a href="#input">SAX for Input</a>
  </li>
  <li>
  <a href="#validation">Validation</a>
  </li>
  <li>
  <a href="#namespaces">Namespaces</a>
  </li>
  </ul>
      
  <a name="N101BE"></a><a name="intro"></a>
  <h3>Introduction</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Parsing is the process of reading the XSL-FO input and making the information in it available to FOP.</p>
  </div>
      
  <a name="N101C8"></a><a name="input"></a>
  <h3>SAX for Input</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>The two standard ways of dealing with XML input are SAX and DOM.
  SAX basically creates events as it parses an XML document in a serial fashion; a program using SAX (and not storing anything internally) will only see a small window of the document at any point in time, and can never look forward in the document.
  DOM creates and stores a tree representation of the document, allowing a view of the entire document as an integrated whole.
  One issue that may seem counter-intuitive to some new FOP developers, and which has from time to time been contentious, is that FOP uses SAX for input.
  (DOM can be used as input as well, but it is converted into SAX events before entering FOP, effectively negating its advantages).</p>
  <p>Since FOP essentially needs a tree representation of the FO input, at first glance it seems to make sense to use DOM.
  Instead, FOP takes SAX events and builds its own tree-like structure. Why?</p>
  <ul>
          
  <li>DOM has a relatively large memory footprint. FOP's FO Tree is a lighter-weight structure.</li>
          
  <li>DOM contains an entire document. FOP is able to process individual fo:page-sequence objects discretely, without the need to have the entire document in memory. For documents that have only one fo:page-sequence object, FOP's approach is no advantage, but in other cases it is a huge advantage. A 500-page book that is broken into 100 5-page chapters, each in its own fo:page-sequence, essentially needs only 1% of the document memory that would be required if using DOM as input.</li>
        
  </ul>
  <p>See the <a href="../embedding.html#input">Input Section of the User Embedding Document</a> for a discussion of input usage patterns and some implementation details.</p>
  <p>FOP's <a href="fotree.html">FO Tree Mechanism</a> is responsible for catching the SAX events and processing them.</p>
  </div>
      
  <a name="N101EC"></a><a name="validation"></a>
  <h3>Validation</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>If the input XML is not well-formed, that will be reported.</p>
  <p>There is no DTD for XSL-FO, so no formal validation is possible at the parser level.</p>
  <p>The SAX handler will report an error for unrecognized <a href="#namespaces">namespaces</a>.</p>
  </div>
      
  <a name="N10200"></a><a name="namespaces"></a>
  <h3>Namespaces</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>To allow for extensions to the XSL-FO language, FOP provides a mechanism for handling foreign namespaces.</p>
  <p>See <a href="../extensions.html">User Extensions</a> for a discussion of standard extensions shipped with FOP, and their related namespaces.</p>
  <p>See <a href="../dev/extensions.html">Developer Extensions</a> for a discussion of the mechanisms in place to allow developers to add their own extensions, including how to tell FOP about the foreign namespace.</p>
  </div>
    
  </div>
  </td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../skin/images/spacer.gif"><a href="../skin/images/label.gif"></a><a href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a href="../skin/images/chapter_open.gif"></a><a href="../skin/images/current.gif"></a><a href="..//favicon.ico"></a></td>
  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/fop/design/parsing.pdf
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/fop/design/pdf-library.html
  
  Index: pdf-library.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>FOP Design: PDF Library</title>
  <link type="text/css" href="../skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://xml.apache.org/"><img border="0" class="logoImage" alt="Apache XML" src="../images/group-logo.gif"></a></td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://xml.apache.org/fop/"><img border="0" class="logoImage" alt="FOP" src="../images/logo.jpg"></a></td>
  <!--================= end Project Logo ==================-->
  <!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  <form target="_blank" action="http://www.google.com/search" method="get">
  <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  <tr>
  <td colspan="3"><img height="10" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="xml.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Apache XML site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" src="../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../skin/images/search-right.gif"></td>
  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../dev/index.html"><font face="Arial, Helvetica, Sans-serif">Development</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="index.html"><font color="#000000">Design</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="alt.design/index.html"><font face="Arial, Helvetica, Sans-serif">Alt Design</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  <!--================= start Menu items ==================-->
  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
        
  <li>
  <a href="index.html">Introduction</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Core Process</font>
  <ul>
        
  <li>
  <a href="parsing.html">XML Parsing</a>
  </li>
        
  <li>
  <a href="fotree.html">FO Tree</a>
  </li>
        
  <li>
  <a href="properties.html">Properties</a>
  </li>
        
  <li>
  <a href="layout.html">Layout</a>
  </li>
        
  <li>
  <a href="breakpos.html">Break Possibility</a>
  </li>
        
  <li>
  <a href="areas.html">Area Tree</a>
  </li>
        
  <li>
  <a href="renderers.html">Renderers</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Miscellaneous</font>
  <ul>
        
  <li>
  <a href="images.html">Images</a>
  </li>
        
  <li>
  <span class="sel"><font color="#ffcc00">PDF Library</font></span>
  </li>
        
  <li>
  <a href="svg.html">SVG</a>
  </li>
        
  <li>
  <a href="embedding.html">Embedding</a>
  </li>
        
  <li>
  <a href="extending.html">Extending</a>
  </li>
        
  <li>
  <a href="optimise.html">Optimisations</a>
  </li>
        
  <li>
  <a href="useragent.html">User Agent</a>
  </li>
      
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-right.gif"></td>
  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="100%">
  <div class="content">
  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>FOP Design: PDF Library</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="pdf-library.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
            print-friendly<br>
            PDF</a></td>
  </tr>
  </table>
  <ul class="minitoc">
  <li>
  <a href="#intro">Introduction</a>
  </li>
  <li>
  <a href="#PDF+Document">PDF Document</a>
  </li>
  <li>
  <a href="#Building+PDF">Building PDF</a>
  </li>
  <li>
  <a href="#Features">Features</a>
  <ul class="minitoc">
  <li>
  <a href="#Fonts">Fonts</a>
  </li>
  <li>
  <a href="#Images">Images</a>
  </li>
  <li>
  <a href="#Stream+Filters">Stream Filters</a>
  </li>
  <li>
  <a href="#Links">Links</a>
  </li>
  <li>
  <a href="#Patterns">Patterns</a>
  </li>
  </ul>
  </li>
  </ul>
  
  <a name="N101BE"></a><a name="intro"></a>
  <h3>Introduction</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>The PDF Library is an independant package of classes in FOP. These class
  provide a simple way to construct documents and add the contents. The
  classes are found in <span class="codefrag">org.apache.fop.pdf.*</span>.</p>
  </div>
  
  
  <a name="N101CB"></a><a name="PDF+Document"></a>
  <h3>PDF Document</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>This is where most of the document is created and put together.</p>
  <p>It sets up the header, trailer and resources. Each page is made and added to the document.
  There are a number of methods that can be used to create/add certain PDF objects to the document.</p>
  </div>
  
  
  <a name="N101D8"></a><a name="Building+PDF"></a>
  <h3>Building PDF</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>The PDF Document is built by creating a page for each page in the Area Tree.</p>
  <p> This page then has all the contents added.
   The page is then added to the document and available objects can be written to the output stream.</p>
  <p>The contents of the page are things such as text, lines, images etc.
  The PDFRenderer inserts the text directly into a pdf stream.
  The text consists of markup to set fonts, set text position and add text.</p>
  <p>Most of the simple pdf markup is inserted directly into a pdf stream.
  Other more complex objects or commonly used objects are added through java classes.
  Some pdf objects such as an image consists of two parts.</p>
  <p>It has a separate object for the image data and another bit of markup to display the image in a certain position on the page.
  </p>
  <p>The java objects that represent a pdf object implement a method that returns the markup for inserting into a stream.
  The method is: byte[] toPDF().</p>
  </div>
  
  <a name="N101F0"></a><a name="Features"></a>
  <h3>Features</h3>
  <div style="margin-left: 0 ; border: 2px">
  <a name="N101F6"></a><a name="Fonts"></a>
  <h4>Fonts</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>Support for embedding fonts and using the default Acrobat fonts.
  </p>
  </div>
  <a name="N101FF"></a><a name="Images"></a>
  <h4>Images</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>Images can be inserted into a page. The image can either be inserted as a pixel map or directly insert a jpeg image.
  </p>
  </div>
  <a name="N10208"></a><a name="Stream+Filters"></a>
  <h4>Stream Filters</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>A number of filters are available to encode the pdf streams. These filters can compress the data or change it such as converting to hex.
  </p>
  </div>
  <a name="N10211"></a><a name="Links"></a>
  <h4>Links</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>A pdf link can be added for an area on the page. This link can then point to an external destination or a position on any page in the document.
  </p>
  </div>
  <a name="N1021A"></a><a name="Patterns"></a>
  <h4>Patterns</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>The fill and stroke of graphical objects can be set with a colour, pattern or gradient.
  </p>
  </div>
  <p>The are a number of other features for handling pdf markup relevent to creating PDF files for FOP.</p>
  </div>
  
      
  </div>
  </td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../skin/images/spacer.gif"><a href="../skin/images/label.gif"></a><a href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a href="../skin/images/chapter_open.gif"></a><a href="../skin/images/current.gif"></a><a href="..//favicon.ico"></a></td>
  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/fop/design/pdf-library.pdf
  
  	<<Binary file>>
  
  
  1.1                  xml-site/targets/fop/design/svg.html
  
  Index: svg.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>FOP Design: SVG</title>
  <link type="text/css" href="../skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" width="5" alt="" border="0" src="../skin/images/spacer.gif"><!--===== breadcrumb trail (javascript-generated) ====--><font size="2" face="Arial, Helvetica, Sans-serif"><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script></font></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://xml.apache.org/"><img border="0" class="logoImage" alt="Apache XML" src="../images/group-logo.gif"></a></td>
  <!--================= end Group Logo ==================-->
  <!--================= start Project Logo ==================--><td width="100%" align="center" bgcolor="#294563"><a href="http://xml.apache.org/fop/"><img border="0" class="logoImage" alt="FOP" src="../images/logo.jpg"></a></td>
  <!--================= end Project Logo ==================-->
  <!--================= start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">
  <form target="_blank" action="http://www.google.com/search" method="get">
  <table summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">
  <tr>
  <td colspan="3"><img height="10" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap"><input value="xml.apache.org" name="sitesearch" type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif"><input name="Search" value="Search" type="submit">
  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Apache XML site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" src="../skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" src="../skin/images/search-right.gif"></td>
  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img height="10" width="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../index.html"><font face="Arial, Helvetica, Sans-serif">Home</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="../dev/index.html"><font face="Arial, Helvetica, Sans-serif">Development</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="selected tab" style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a href="index.html"><font color="#000000">Design</font></a></b></font></td><td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" src="../skin/images/tabSel-right.gif"></td>
  </tr>
  </table>
  </td><td width="8"><img alt="" height="8" width="8" src="../skin/images/spacer.gif"></td><td valign="bottom">
  <table summary="non selected tab" style="height: 1.6em" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-left.gif"></td><td valign="middle" bgcolor="#B2C4E0"><a href="alt.design/index.html"><font face="Arial, Helvetica, Sans-serif">Alt Design</font></a></td><td valign="top" width="5" bgcolor="#B2C4E0"><img height="5" width="5" alt="" src="../skin/images/tab-right.gif"></td>
  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, Sans-serif">&nbsp;</font></td>
  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td nowrap="nowrap" valign="top" bgcolor="#4C6C8F">
  <!--================= start Menu items ==================-->
  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
        
  <li>
  <a href="index.html">Introduction</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Core Process</font>
  <ul>
        
  <li>
  <a href="parsing.html">XML Parsing</a>
  </li>
        
  <li>
  <a href="fotree.html">FO Tree</a>
  </li>
        
  <li>
  <a href="properties.html">Properties</a>
  </li>
        
  <li>
  <a href="layout.html">Layout</a>
  </li>
        
  <li>
  <a href="breakpos.html">Break Possibility</a>
  </li>
        
  <li>
  <a href="areas.html">Area Tree</a>
  </li>
        
  <li>
  <a href="renderers.html">Renderers</a>
  </li>
      
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Miscellaneous</font>
  <ul>
        
  <li>
  <a href="images.html">Images</a>
  </li>
        
  <li>
  <a href="pdf-library.html">PDF Library</a>
  </li>
        
  <li>
  <span class="sel"><font color="#ffcc00">SVG</font></span>
  </li>
        
  <li>
  <a href="embedding.html">Embedding</a>
  </li>
        
  <li>
  <a href="extending.html">Extending</a>
  </li>
        
  <li>
  <a href="optimise.html">Optimisations</a>
  </li>
        
  <li>
  <a href="useragent.html">User Agent</a>
  </li>
      
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" src="../skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-left.gif"></td><td bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" src="../skin/images/menu-right.gif"></td>
  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td align="right" width="50%" bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif">
                  &nbsp;
                  
                  </font><img width="10" height="8" alt="" src="../skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td><td align="left" width="100%">
  <div class="content">
  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>FOP Design: SVG</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="svg.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
            print-friendly<br>
            PDF</a></td>
  </tr>
  </table>
  <ul class="minitoc">
  <li>
  <a href="#intro">Introduction</a>
  </li>
  <li>
  <a href="#Text+Drawing">Text Drawing</a>
  </li>
  <li>
  <a href="#PDF+Links">PDF Links</a>
  </li>
  <li>
  <a href="#Images">Images</a>
  </li>
  <li>
  <a href="#PDF+Transcoder">PDF Transcoder</a>
  </li>
  <li>
  <a href="#Other+Outputs">Other Outputs</a>
  </li>
  </ul>
  
  <a name="N101BE"></a><a name="intro"></a>
  <h3>Introduction</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>SVG is rendered through Batik.</p>
  <p>The XML from the XSL:FO document
        is converted into an SVG DOM with batik. This DOM is then set as the Document
        on the Foreign Object area in the Area Tree.</p>
  <p>This DOM is then available to
        be rendered by the renderer.</p>
  <p>SVG is rendered in the renderers via an      XMLHandler in the FOUserAgent. This XML handler is used to render the SVG. The
        SVG is rendered by using batik. Batik converts the SVG DOM into an internal
        structure that can be drawn into a Graphics2D. So for PDF we use a
        PDFGraphics2D to draw into.</p>
  <p>This creates the necessary PDF information to
        create the SVG image in the PDF document.</p>
  <p>Most of the work is done in the
        PDFGraphics2D class. There are also a few bridges that are plugged into batik
        to provide different behaviour for some SVG elements.</p>
  </div>
  
  <a name="N101D2"></a><a name="Text+Drawing"></a>
  <h3>Text Drawing</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Normally batik converts text into a set of curved
         shapes. </p>
  <p>This is handled as any other shapes when rendering to the output. This
         is not always desirable as the shapes have very fine curves. This can cause the
         output to look a bit bad in PDF and PS (it can be drawn properly but is not by
         default). These curves also require much more data than the original
         text.</p>
  <p>To handle this there is a PDFTextElementBridge that is set when
         using the bridge in batik. If the text is simple enough for the text to be
         drawn in the PDF as with all other text then this sets the TextPainter to use
         the PDFTextPainter. This inserts the text directly into the PDF using the       drawString method on the PDFGraphics2D.</p>
  <p>Text is considered simple if the
         font is available, the font size is useable and there are no tspans or other
         complications. This can make the resulting PDF significantly
         smaller.</p>
  </div>
  
  <a name="N101E2"></a><a name="PDF+Links"></a>
  <h3>PDF Links</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>To support links in PDF another batik
         element bridge is used. The PDFAElementBridge creates a PDFANode which inserts
         a link into the PDF document via the PDFGraphics2D.</p>
  <p>Since links are       positioned on the page without any transforms then we need to transform the
         coordinates of the link area so that they match the current position of the a
         element area. This transform may also need to account for the svg being
         positioned on the page.</p>
  </div>
  
  <a name="N101EE"></a><a name="Images"></a>
  <h3>Images</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Images are normally drawn
         into the PDFGraphics2D. This then creates a bitmap of the image data that can
         be inserted into the PDF document. </p>
  <p>As PDF can support jpeg images then another
         element bridge is used so that the jpeg can be directly inserted into the       PDF.</p>
  </div>
  
  <a name="N101FA"></a><a name="PDF+Transcoder"></a>
  <h3>PDF Transcoder</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>Batik provides a mechanism to
         convert SVG into various formats. Through FOP we can convert an SVG document
         into a single paged PDF document. The page contains the SVG drawn as best as
         possible on the page. There is a PDFDocumentGraphics2D that creates a
         standalone PDF document with a single page. This is then drawn into by batik in
         the same way as with the PDFGraphics2D.</p>
  </div>
  
  <a name="N10204"></a><a name="Other+Outputs"></a>
  <h3>Other Outputs</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>When rendering to AWT the SVG is simply drawn onto the
         awt canvas using batik.</p>
  <p>The PS Renderer uses a similar technique as the
         PDF Renderer.</p>
  <p>The SVG Renderer simply embeds the SVG inside an svg
         element.</p>
  </div>
  
      
  </div>
  </td><td width="10"><img width="10" height="1" alt="" src="../skin/images/spacer.gif"></td>
  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" src="../skin/images/spacer.gif"><a href="../skin/images/label.gif"></a><a href="../skin/images/page.gif"></a><a href="../skin/images/chapter.gif"></a><a href="../skin/images/chapter_open.gif"></a><a href="../skin/images/current.gif"></a><a href="..//favicon.ico"></a></td>
  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            1999-2003&nbsp;The Apache Software Foundation. All rights reserved.<script type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  xml-site/targets/fop/design/svg.pdf
  
  	<<Binary file>>
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/FOPropertySets.html
  
  Index: FOPropertySets.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/FOPropertySets.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.13      +0 -0      xml-site/targets/fop/design/alt.design/FoXMLEvent.html
  
  Index: FoXMLEvent.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/FoXMLEvent.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  
  
  
  1.13      +0 -0      xml-site/targets/fop/design/alt.design/SyncedFoXmlEventsBuffer.html
  
  Index: SyncedFoXmlEventsBuffer.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/SyncedFoXmlEventsBuffer.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  
  
  
  1.13      +0 -0      xml-site/targets/fop/design/alt.design/XMLNamespaces.html
  
  Index: XMLNamespaces.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/XMLNamespaces.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  
  
  
  1.12      +0 -0      xml-site/targets/fop/design/alt.design/codedisplay.js
  
  Index: codedisplay.js
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/codedisplay.js,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  
  
  
  1.12      +2 -1      xml-site/targets/fop/design/alt.design/compound-properties.html
  
  Index: compound-properties.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/compound-properties.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- compound-properties.html	23 Apr 2003 03:40:12 -0000	1.11
  +++ compound-properties.html	29 Apr 2003 16:45:34 -0000	1.12
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Compound properties</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="compound-properties.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="compound-properties.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.9       +2 -1      xml-site/targets/fop/design/alt.design/coroutines.html
  
  Index: coroutines.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/coroutines.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- coroutines.html	23 Apr 2003 03:40:12 -0000	1.8
  +++ coroutines.html	29 Apr 2003 16:45:34 -0000	1.9
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Implementing co-routines</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="coroutines.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="coroutines.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.12      +2 -1      xml-site/targets/fop/design/alt.design/footnotes.html
  
  Index: footnotes.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/footnotes.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- footnotes.html	23 Apr 2003 03:40:12 -0000	1.11
  +++ footnotes.html	29 Apr 2003 16:45:34 -0000	1.12
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Implementing footnotes</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="footnotes.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="footnotes.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.12      +2 -1      xml-site/targets/fop/design/alt.design/galleys.html
  
  Index: galleys.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/galleys.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- galleys.html	23 Apr 2003 03:40:12 -0000	1.11
  +++ galleys.html	29 Apr 2003 16:45:34 -0000	1.12
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Galleys</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="galleys.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="galleys.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.13      +2 -1      xml-site/targets/fop/design/alt.design/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/index.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- index.html	23 Apr 2003 03:40:12 -0000	1.12
  +++ index.html	29 Apr 2003 16:45:34 -0000	1.13
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP Alternative Design</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="index.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="index.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.12      +2 -1      xml-site/targets/fop/design/alt.design/keeps.html
  
  Index: keeps.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/keeps.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- keeps.html	23 Apr 2003 03:40:12 -0000	1.11
  +++ keeps.html	29 Apr 2003 16:45:34 -0000	1.12
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Keeps and breaks</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="keeps.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="keeps.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.12      +2 -1      xml-site/targets/fop/design/alt.design/spaces.html
  
  Index: spaces.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/spaces.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- spaces.html	23 Apr 2003 03:40:12 -0000	1.11
  +++ spaces.html	29 Apr 2003 16:45:35 -0000	1.12
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Keeps and space-specifiers</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="spaces.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="spaces.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.12      +2 -1      xml-site/targets/fop/design/alt.design/traits.html
  
  Index: traits.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/traits.html,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- traits.html	23 Apr 2003 03:40:12 -0000	1.11
  +++ traits.html	29 Apr 2003 16:45:35 -0000	1.12
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>Traits</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="traits.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="traits.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.11      +2 -1      xml-site/targets/fop/design/alt.design/user-agent-refs.html
  
  Index: user-agent-refs.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/user-agent-refs.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- user-agent-refs.html	23 Apr 2003 03:40:12 -0000	1.10
  +++ user-agent-refs.html	29 Apr 2003 16:45:35 -0000	1.11
  @@ -234,7 +234,8 @@
   <tr>
   <td valign="middle">
   <h1>User agent refs</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="user-agent-refs.pdf"><img alt="PDF" src="../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="user-agent-refs.pdf"><img alt="printer" src="../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/AbstractPropertyValue.html
  
  Index: AbstractPropertyValue.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/AbstractPropertyValue.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/FOAttributes.html
  
  Index: FOAttributes.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/FOAttributes.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropNames.html
  
  Index: PropNames.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropNames.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/Property.html
  
  Index: Property.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/Property.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropertyConsts.html
  
  Index: PropertyConsts.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyConsts.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropertyParser.html
  
  Index: PropertyParser.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyParser.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropertySets.html
  
  Index: PropertySets.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertySets.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropertyTokenizer.html
  
  Index: PropertyTokenizer.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyTokenizer.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropertyValue.html
  
  Index: PropertyValue.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyValue.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/PropertyValueList.html
  
  Index: PropertyValueList.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/PropertyValueList.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.22      +0 -0      xml-site/targets/fop/design/alt.design/properties/ShorthandPropSets.html
  
  Index: ShorthandPropSets.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/ShorthandPropSets.html,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  
  
  
  1.12      +0 -0      xml-site/targets/fop/design/alt.design/properties/codedisplay.js
  
  Index: codedisplay.js
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/codedisplay.js,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  
  
  
  1.6       +2 -1      xml-site/targets/fop/design/alt.design/properties/introduction.html
  
  Index: introduction.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/design/alt.design/properties/introduction.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- introduction.html	23 Apr 2003 03:40:16 -0000	1.5
  +++ introduction.html	29 Apr 2003 16:45:37 -0000	1.6
  @@ -200,7 +200,8 @@
   <tr>
   <td valign="middle">
   <h1>Implementing Properties</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="introduction.pdf"><img alt="PDF" src="../../../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="introduction.pdf"><img alt="printer" src="../../../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.2       +15 -5     xml-site/targets/fop/dev/doc.html
  
  Index: doc.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/doc.html,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- doc.html	23 Apr 2003 03:40:18 -0000	1.1
  +++ doc.html	29 Apr 2003 16:45:38 -0000	1.2
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Managing FOP Documentation</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="doc.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="doc.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -265,6 +266,9 @@
   <li>
   <a href="#web-manual">Updating the FOP Web Repository Manually (Deprecated)</a>
   </li>
  +<li>
  +<a href="#delete">Deleting Documentation Files</a>
  +</li>
   </ul>
   </li>
   </ul>
  @@ -299,10 +303,10 @@
             
   <tr>
               
  -<th colspan="1" rowspan="1">Processes</th>
  -            <th colspan="1" rowspan="1">Files</th>
  +<th colspan="1" rowspan="1">Process</th>
  +            <th colspan="1" rowspan="1">Output</th>
               <th colspan="1" rowspan="1">State</th>
  -            <th colspan="1" rowspan="1">Views</th>
  +            <th colspan="1" rowspan="1">View(s)</th>
             
   </tr>
             
  @@ -447,7 +451,8 @@
   <div style="margin-left: 0 ; border: 2px">
   <div class="frame warning">
   <div class="label">Warning</div>
  -<div class="content">The steps in this section should not ordinarily be used. They are documented here for historical reasons, and for emergencies.</div>
  +<div class="content">The steps in this section should not ordinarily be used. They are documented here for historical reasons, and for emergencies.
  +See <a href="#delete">manually deleting retired files</a> for an exception to this rule.</div>
   </div>
   <ul>
             
  @@ -456,6 +461,11 @@
   <li>Commit xml-site/targets/fop.</li>
           
   </ul>
  +</div>
  +<a name="N1030D"></a><a name="delete"></a>
  +<h4>Deleting Documentation Files</h4>
  +<div style="margin-left: 0 ; border: 2px">
  +<p>The one place where manual updates of the web cvs repository are required is when a document is retired. At this point, it will no longer be generated. However, it will still exist in the web cvs repository. You will need to use a cvs client to remove the files, then commit the changes to keep them from continuing to exist on the live site.</p>
   </div>
   </div>
     
  
  
  
  1.2       +422 -213  xml-site/targets/fop/dev/doc.pdf
  
  	<<Binary file>>
  
  
  1.13      +2 -1      xml-site/targets/fop/dev/examples.html
  
  Index: examples.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/examples.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- examples.html	23 Apr 2003 03:40:18 -0000	1.12
  +++ examples.html	29 Apr 2003 16:45:38 -0000	1.13
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>FO Examples</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="examples.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="examples.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.14      +10 -6     xml-site/targets/fop/dev/extensions.html
  
  Index: extensions.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/extensions.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- extensions.html	23 Apr 2003 03:40:18 -0000	1.13
  +++ extensions.html	29 Apr 2003 16:45:38 -0000	1.14
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Adding an Extension to FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="extensions.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="extensions.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -252,7 +253,7 @@
   <a name="N101BE"></a><a name="overview"></a>
   <h3>Overview</h3>
   <div style="margin-left: 0 ; border: 2px">
  -<p>For documentation of standard FOP extenstions, see the <a href="../extensions.html">User FOP Extensions</a> document.</p>
  +<p>For documentation of standard FOP extensions, see the <a href="../extensions.html">User FOP Extensions</a> document.</p>
   <p>
   If the default funtionality of FOP needs to be extended for
   some reason then you can write an extension.
  @@ -280,10 +281,13 @@
   <li>Write code that implements your extension functionality. The easiest place to
   start is by looking at the code in org.apache.fop.extension, and by looking at the examples in the <span class="codefrag">contrib</span> directory.</li>
             
  -<li>Create a jar file with your classes, it must also include the following file
  -"/META-INF/services/org.apache.fop.fo.ElementMapping". In this file you need
  -to put the fully qualified classname of your element mappings class. This
  -class must implement the "org.apache.fop.fo.ElementMapping" interface.</li>
  +<li>Create a class that implements the org.apache.fop.fo.ElementMapping interface. ElementMapping is a hashmap of all of the elements in a particular namespace, which makes it easier for FOP to create a different object for each element.
  +ElementMapping objects are static to save on memory.
  +They are loaded by FOP when parsing starts to validate input.</li>
  +          
  +<li>Create the following file: "/META-INF/services/org.apache.fop.fo.ElementMapping", which should contain the fully qualified classname of your ElementMapping implementation class.</li>
  +          
  +<li>Create a jar file containing all of the above files.</li>
             
   <li>Create your XSL-FO file with the extra XML data embedded in the file with the
   correct name space.
  
  
  
  1.8       +86 -73    xml-site/targets/fop/dev/extensions.pdf
  
  	<<Binary file>>
  
  
  1.14      +2 -1      xml-site/targets/fop/dev/faq.html
  
  Index: faq.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/faq.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- faq.html	23 Apr 2003 03:40:18 -0000	1.13
  +++ faq.html	29 Apr 2003 16:45:39 -0000	1.14
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>FOP Developer FAQ</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="faq.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="faq.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.11      +2 -1      xml-site/targets/fop/dev/fonts.html
  
  Index: fonts.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/fonts.html,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- fonts.html	23 Apr 2003 03:40:18 -0000	1.10
  +++ fonts.html	29 Apr 2003 16:45:40 -0000	1.11
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Fonts (Developer Information)</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="fonts.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="fonts.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.4       +2 -1      xml-site/targets/fop/dev/implement.html
  
  Index: implement.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/implement.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- implement.html	23 Apr 2003 03:40:18 -0000	1.3
  +++ implement.html	29 Apr 2003 16:45:40 -0000	1.4
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Implementation Overview</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="implement.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="implement.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.15      +2 -1      xml-site/targets/fop/dev/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/index.html,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- index.html	23 Apr 2003 03:40:18 -0000	1.14
  +++ index.html	29 Apr 2003 16:45:40 -0000	1.15
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Information for FOP Developers</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="index.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="index.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.5       +2 -1      xml-site/targets/fop/dev/pdf.html
  
  Index: pdf.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/pdf.html,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- pdf.html	23 Apr 2003 03:40:18 -0000	1.4
  +++ pdf.html	29 Apr 2003 16:45:40 -0000	1.5
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>PDF (Developer Information)</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="pdf.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="pdf.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.4       +2 -1      xml-site/targets/fop/dev/ps.html
  
  Index: ps.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/ps.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ps.html	23 Apr 2003 03:40:19 -0000	1.3
  +++ ps.html	29 Apr 2003 16:45:40 -0000	1.4
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Postscript (Developer Information)</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="ps.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="ps.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.14      +3 -2      xml-site/targets/fop/dev/svg.html
  
  Index: svg.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/svg.html,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- svg.html	23 Apr 2003 03:40:19 -0000	1.13
  +++ svg.html	29 Apr 2003 16:45:40 -0000	1.14
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>SVG Developer Issues</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="svg.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="svg.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  @@ -257,7 +258,7 @@
   </li>
   </ul>
       
  -<p>See also <a href="../svg.html#svg">SVG User Documentation</a> for more information.</p>
  +<p>See also <a href="../graphics.html#svg">SVG User Documentation</a> for more information.</p>
             
   <a name="N101C5"></a><a name="Examples"></a>
   <h3>Examples</h3>
  
  
  
  1.8       +87 -87    xml-site/targets/fop/dev/svg.pdf
  
  	<<Binary file>>
  
  
  1.4       +2 -1      xml-site/targets/fop/dev/testing.html
  
  Index: testing.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/testing.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- testing.html	23 Apr 2003 03:40:20 -0000	1.3
  +++ testing.html	29 Apr 2003 16:45:41 -0000	1.4
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Testing FOP</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="testing.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="testing.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  
  1.6       +2 -1      xml-site/targets/fop/dev/tools.html
  
  Index: tools.html
  ===================================================================
  RCS file: /home/cvs/xml-site/targets/fop/dev/tools.html,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- tools.html	23 Apr 2003 03:40:20 -0000	1.5
  +++ tools.html	29 Apr 2003 16:45:41 -0000	1.6
  @@ -236,7 +236,8 @@
   <tr>
   <td valign="middle">
   <h1>Developer Tools</h1>
  -</td><td nowrap="nowrap" width="40" align="center"><a class="dida" href="tools.pdf"><img alt="PDF" src="../skin/images/pdfdoc.gif" border="0"><br>
  +</td><td nowrap="nowrap" width="80" align="center"><a class="dida" href="tools.pdf"><img alt="printer" src="../skin/images/printer.gif" border="0"><br>
  +          print-friendly<br>
             PDF</a></td>
   </tr>
   </table>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: general-cvs-help@xml.apache.org