]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Updated docs from HEAD
authorChristian Geisert <chrisg@apache.org>
Tue, 18 Feb 2003 04:47:45 +0000 (04:47 +0000)
committerChristian Geisert <chrisg@apache.org>
Tue, 18 Feb 2003 04:47:45 +0000 (04:47 +0000)
Updated version number for RC2

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-0_20_2-maintain@195964 13f79535-47bb-0310-9956-ffa450edef68

18 files changed:
build.xml
src/documentation/content/xdocs/book.xml
src/documentation/content/xdocs/compiling.xml
src/documentation/content/xdocs/configuration.xml
src/documentation/content/xdocs/download.xml
src/documentation/content/xdocs/embedding.xml
src/documentation/content/xdocs/examples.xml
src/documentation/content/xdocs/extensions.xml
src/documentation/content/xdocs/faq.xml
src/documentation/content/xdocs/fonts.xml
src/documentation/content/xdocs/index.xml
src/documentation/content/xdocs/involved.xml
src/documentation/content/xdocs/news.xml
src/documentation/content/xdocs/output.xml
src/documentation/content/xdocs/relnotes.xml
src/documentation/content/xdocs/running.xml
src/documentation/content/xdocs/tabs.xml
src/documentation/content/xdocs/testing.xml

index c93b8a14e53543d8d27cbc7084beb9a5c1e4a9af..4e0debcd0c380700dc53de3702fb1a8e50c7fefa 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -194,7 +194,7 @@ Sometimes ant gives out this warnings, but the build is finished without any pro
     <tstamp/>
     <property name="Name" value="Fop"/>
     <property name="name" value="fop"/>
-    <property name="version" value="0.20.5"/>
+    <property name="version" value="0.20.5rc2"/>
     <filter  token="version" value="${version}"/>
     <property name="year" value="1999-2003"/>
 
index d1ce4e9fda581db6417f9badae1fe63b28970a4e..9c635c565cc274a59469dc1bf547a4cd12280b54 100644 (file)
@@ -11,6 +11,7 @@
         <menu label="About">
           <menu-item label="Index" href="index.html"/>
           <menu-item label="News" href="news.html"/>
+          <menu-item label="Logo contest" href="logocontest.html"/>
           <menu-item label="FAQs" href="faq.html"/>
           <menu-item label="Download" href="download.html"/>
           <menu-item label="Release Notes" href="relnotes.html"/>
@@ -20,6 +21,8 @@
 
         <menu label="Project">
           <menu-item label="Status" href="status.html"/>
+          <menu-item label="Changes" href="changes.html"/>
+          <menu-item label="Todo" href="todo.html"/>
         </menu>
 
         <menu label="Using FOP">
index 9026af99e649da4ab494824f084f429d27dd3338..693a2f9c16c1eb3081d08d34034db96bb472daa0 100644 (file)
         build.xml is the replacement of makefile. Look there for detailed information on the build
         process and different targets. </p>
        <p>A help screen is shown by calling "build usage".</p>
-       <p>If you only want to use Fop, you don't need to build it. A fop.jar comes with the distribution.</p>
+       <p>If you only want to use FOP, you don't need to build it. A fop.jar comes with the distribution.</p>
    <section>
      <title>Setting up your classpath</title>
-     <note>You don't have to setup your classpath; all libraries needed to compile Fop are coming with
+     <note>You don't have to setup your classpath; all libraries needed to compile FOP are coming with
               the distribution and are referenced by the build script, so you only need to care about them,
-              if you build Fop in any other way. See build.bat/build.sh for details. </note>
+              if you build FOP in any other way. See build.bat/build.sh for details. </note>
     </section>
     <section>
       <title>Setting of JAVA_HOME</title>
@@ -32,7 +32,7 @@
     </section>
   <section>
     <title>Problems</title>
-    <p>If you have problems compiling Fop, please try this first: </p>
+    <p>If you have problems compiling FOP, please try this first: </p>
     <ul>
       <li>delete the build directory completely and try a new build from scratch</li>
       <li>check, whether you have an older version of xerces.jar, xalan.jar, batik.jar somewhere in
index d5924cd259ae211235fea91786f8543c7b941554..804e50406ddb6776cb987b3a898827d5952b631a 100644 (file)
@@ -3,56 +3,64 @@
     "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
 
 <document>
-    <header>
-        <title>Configuration</title>
-    </header>
+  <header>
+    <title>Configuration</title>
+  </header>
 
-    <body>
-<section>
-  <title>Configuration</title>
+  <body>
   <section>
-    <title>How to configure Fop</title>
+    <title>How to configure FOP</title>
     <p>In the directory xml-fop/conf you will find two configuration files. One of them,
-       config.xml, is only intended for Fop developers, who want to add new default values
-       to some Fop feature. Don't change this file. For user configuration there is a file called
+       config.xml, is only intended for FOP developers, who want to add new default values
+       to some FOP feature. Don't change this file. For user configuration there is a file called
        userconfig.xml. It contains templates for all settings a user can change. Most of them are
        commented out. Uncomment the entry you want to set and change the value according to
        your wishes. Please regard any comments which specify the value range. And, well, the
-       configuration files are xml files, so keep them at least well-formed ;-)
+       configuration files are xml files, so keep them at least well-formed. ;-)
     </p>
     <p>The file userconfig.xml is not read automatically, but the user must specify its use on
-       the command line. See <link href="running.html">Running Fop</link>
-       or <link href="embedding.html">Embedding Fop</link> for details.
+       the command line. See <link href="running.html">Running FOP</link>
+       or <link href="embedding.html">Embedding FOP</link> for details.
     </p>
   </section>
   <section>
-    <title>setting up hyphenation</title>
-    <p>Fop comes already with some hyphenation pattern. If you need a hyphenation pattern
+    <title>Setting up hyphenation</title>
+    <p>FOP comes already with some hyphenation pattern. If you need a hyphenation pattern
        which isn't included in the distribution, do the following:
     </p>
-    <p>1. get the TeX hyphenation pattern file and turn it into an xml file which conforms
-       to the hyphenation.dtd in the sub directory /hyph
-    </p>
-    <p>2. name this new file following this schema: languageCode_countryCode.xml. If you don't need
-       a country code, leave it out, e.g the file name for an American english hyphenation pattern
-       would look like this: en_US.xml. For an Italian file: it.xml. Language and country codes must be
-       the same as in xsl:fo, that is follow
-       <link href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">ISO 639</link>
-       and <link href="http://www.ics.uci.edu/pub/ietf/http/related/iso3166.txt">ISO 3166</link>
-       respectively. NOTE: The ISO 639/ISO 3166 convention is that language names are
-       written in lower case, while country codes are written in upper case.
-    </p>
-    <p>3. If you have build your new hyphenation pattern file successfully there are
-       two ways to make it accessible to Fop.
-    </p>
-    <p>   a) Put this new file into the directory /hyph and rebuild Fop. The file will
-      be picked up and added to the fop.jar.
-    </p>
-    <p>   b) Put the file into a directory of your choice and specify this directory
-      in the userconfig.xml in the entry &lt;hyphenation-dir>.
-    </p>
+    <ol>
+      <li>
+Get the TeX hyphenation pattern file and turn it into an xml file which
+conforms to the hyphenation.dtd in the subdirectory /src/hyph.
+      </li>
+      <li>
+Name this new file following this schema: languageCode_countryCode.xml. If
+you don't need a country code, leave it out, e.g the file name for an American
+english hyphenation pattern would look like this: en_US.xml. For an Italian 
+file: it.xml. Language and country codes must be the same as in xsl:fo, that
+is follow
+<link href="http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt">ISO 639</link>
+and
+<link href="http://www.ics.uci.edu/pub/ietf/http/related/iso3166.txt">ISO 3166</link>
+respectively. NOTE: The ISO 639/ISO 3166 convention is that language names are
+written in lower case, while country codes are written in upper case.
+      </li>
+      <li>
+If you have build your new hyphenation pattern file successfully there are
+two ways to make it accessible to FOP.
+        <ul>
+          <li>
+Put this new file into the directory /src/hyph and rebuild FOP. The file will
+be picked up and added to the fop.jar.
+          </li>
+          <li>
+Put the file into a directory of your choice and specify this directory
+in the userconfig.xml in the entry &lt;hyphenation-dir>.
+          </li>
+        </ul>
+      </li>
+    </ol>
   </section>
-</section>
-    </body>
+  </body>
 </document>
 
index c71d5ff7fa2baf478417e3c1f3b5683a5f498546..5d70da6ce2150e9def5d306f78cb7aa64dfa7d66 100644 (file)
        on AnonCVS in the <link href="http://xml.apache.org/cvs.html">xml.apache.org documentation</link> for details.
        Sometimes people have difficulties to access the cvs server; in this case you can download
        a snapshot from the cvs files <link href="http://xml.apache.org/from-cvs/xml-fop/">here</link>.
-       In both cases you have to build Fop yourself - see <link href="compiling.html">Compiling Fop</link> for details.
+       In both cases you have to build FOP yourself - see <link href="compiling.html">Compiling FOP</link> for details.
     </p>
     <note>
       Important: Currently, releases of FOP are coming out of the
       "fop-0_20_2-maintain" branch. The "MAIN" branch is currently
-      under development. See <link href="http://xml.apache.org/fop/dev/index.html">Development Docs</link>
+      under development. See <link href="dev/index.html">Development Docs</link>
       for more information.
     </note>
     <p>To run FOP from the command line, see <link href="running.html">Running FOP</link>.</p>
index bb85d3d36e11e9467171e19e0a61dabb40489bf6..4e96241b245690136eb0869f57f69eb9beca44b6 100644 (file)
@@ -27,7 +27,7 @@
   </p>
   </section>
   <section>
-    <title>Examples</title>
+    <title>Basics</title>
   <p>The simplest way to use Driver is to instantiate it with the
      InputSource and OutputStream, then set the renderer desired and
      call the run method.
   <p>Here is an example use of Driver which outputs PDF:
   </p>
     <source><![CDATA[
-   Driver driver = new Driver(new InputSource (args[0]),
+   import org.apache.fop.apps.Driver;
+   
+   /*..*/ 
+    
+   Driver driver = new Driver(new InputSource(args[0]),
                               new FileOutputStream(args[1]));
    driver.setRenderer(Driver.RENDER_PDF);
    driver.run();]]></source>
+  <p>
+In the example above, args[0] contains the path to an XSL-FO file, while 
+args[1] contains a path for the target PDF file.
+  </p>
 
   <p>You also need to set up logging. Global logging for all FOP
     processes is managed by MessageHandler. Per-instance logging
     is handled by Driver. You want to set both using an implementation
-    of org.apache.avalon.framework.logger.Logger. See
-    <link href="http://jakarta.apache.org/avalon/framework/">Jakarta
-    Avalon Framework</link> for more information.
+    of org.apache.avalon.framework.logger.Logger. See 
+    <jump href="#logging">below</jump> for more information.
   </p>
     <source><![CDATA[
-    Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
-    MessageHandler.setScreenLogger(logger);
-    driver.setLogger(logger);]]></source>
+   import org.apache.avalon.framework.logger.Logger; 
+   import org.apache.avalon.framework.logger.ConsoleLogger; 
+   
+   /*..*/
+    
+   Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
+   MessageHandler.setScreenLogger(logger);
+   driver.setLogger(logger);]]></source>
 
   <p>To setup the user config file you can do the following
   </p>
     <source><![CDATA[
+   import org.apache.fop.apps.Options;
+   
+   /*..*/ 
+    
    userConfigFile = new File(userConfig);
    options = new Options(userConfigFile);]]></source>
     <note>
 
   <p>Once the Driver is set up, the render method
      is called. Depending on whether DOM or SAX is being used, the
-     invocation of the method is either render(Document) or
-     render(Parser, InputSource) respectively.
+     invocation of the method is either <code>render(Document)</code> or
+     <code>render(Parser, InputSource)</code> respectively.
   </p>
   <p>
      <strong>Another possibility may be used to build the FO Tree. You can
-     call getContentHandler() and fire the SAX events yourself.
+     call <code>getContentHandler()</code> and fire the SAX events yourself.
      </strong>
   </p>
   <p>Once the FO Tree is built, the format() and render() methods may be
   XMLReader parser = inputHandler.getParser();
   driver.setOutputStream(new FileOutputStream(outFile));
   driver.render(parser, inputHandler.getInputSource());]]></source>
-  <p>Have a look at the classes CommandLineStarter or FopServlet for complete examples.</p>
+  <p>Have a look at the classes CommandLineStarter or FopServlet for complete
+     examples. Also, have a look at the examples at the bottom of this page.
+  </p>
 
-<note>If your FO files contain SVG then batik will be used. When batik is
+<note>If your XSL-FO files contain SVG then Batik will be used. When Batik is
 initialised it uses certain classes in <code>java.awt</code> that
 intialises the java AWT classes. This means that a daemon thread
-is created by the jvm and on unix it will need to connect to a
+is created by the JVM and on Unix it will need to connect to a
 DISPLAY.
-The thread means that the java application will not automatically quit
-when finished, you will need to call <code>System.exit</code>. These
-issues should be fixed in the upcoming JDK1.4</note>
+The thread means that the Java application will not automatically quit
+when finished, you will need to call <code>System.exit()</code>. These
+issues should be fixed in the upcoming JDK 1.4</note>
 
   </section>
-  <section>
+  <section id="logging">
     <title>Controlling logging</title>
     <p>FOP uses Jakarta Avalon's
-      <link href="http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/logger/Logger.html">Logger</link>
-       interface to do logging. See the <link href="http://jakarta.apache.org/avalon/">Jakarta Avalon project</link> for more information.</p>
+      <fork href="http://jakarta.apache.org/avalon/api/org/apache/avalon/framework/logger/Logger.html">Logger</fork>
+       interface to do logging. See the <fork href="http://jakarta.apache.org/avalon/">Jakarta Avalon project</fork> for more information.</p>
     <p>Per default FOP uses the ConsoleLogger which logs to System.out. If you want to do logging using a
     logging framework (such as LogKit, Log4J or JDK 1.4 Logging) you can set a
     different Logger implementation on the Driver object. Here's an example how you would use LogKit:</p>
@@ -125,7 +143,7 @@ issues should be fixed in the upcoming JDK1.4</note>
 
     driver.setLogger(new org.apache.avalon.framework.logger.LogKitLogger(log));]]></source>
   <p>The LogKitLogger class implements the Logger interface so all logging calls are being redirected to LogKit.
-  More information on Jakarta LogKit can be found <link href="http://jakarta.apache.org/avalon/logkit/index.html">here</link>.</p>
+  More information on Jakarta LogKit can be found <fork href="http://jakarta.apache.org/avalon/logkit/index.html">here</fork>.</p>
   <p>Similar implementations exist for Log4J (org.apache.avalon.framework.logger.Log4JLogger) and
   JDK 1.4 logging (org.apache.avalon.framework.logger.Jdk14Logger).</p>
   <p>If you want FOP to be totally silent you can also set an org.apache.avalon.framework.logger.NullLogger instance.</p>
@@ -141,8 +159,8 @@ issues should be fixed in the upcoming JDK1.4</note>
 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:
-<link href="http://xml.apache.org/xalan-j/usagepatterns.html">
-http://xml.apache.org/xalan-j/usagepatterns.html</link> describes
+<fork href="http://xml.apache.org/xalan-j/usagepatterns.html">
+http://xml.apache.org/xalan-j/usagepatterns.html</fork> describes
 how you can do these things.
      </p>
      <p>
@@ -150,6 +168,9 @@ 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
+     </p>
     </section>
     <section>
       <title>Object reuse</title>
@@ -168,33 +189,133 @@ IntputStream and renderer.
     <section>
       <title>Getting information on the rendering process</title>
       <p>
-      To get the number of pages that were rendered by FOP you can call Driver.getResults(). This returns a
-      FormattingResults object where you can lookup the number of pages produced. It also gives you the
-      page-sequences that were produced along with their id attribute and their number of pages. This is particularly useful if you
-      render multiple documents (each enclosed by a page-sequence) and have to know the number of pages
-      of each document.
+To get the number of pages that were rendered by FOP you can call 
+<code>Driver.getResults()</code>. This returns a FormattingResults object 
+where you can lookup the number of pages produced. It also gives you the 
+page-sequences that were produced along with their id attribute and their 
+number of pages. This is particularly useful if you render multiple 
+documents (each enclosed by a page-sequence) and have to know the number of 
+pages of each document.
       </p>
     </section>
   </section>
   <section>
-    <title>Using Fop in a servlet</title>
+    <title>Using FOP in a servlet</title>
      <p>
-In the directory xml-fop/docs/examples/embedding you can find a working
-example how to use Fop in a servlet. You can drop the fop.war into the
-webapps directory of Tomcat, then go to a URL like this:
+In the directory xml-fop/examples/servlet you can find a working example how
+to use FOP in a servlet. After building the servlet you can drop the fop.war 
+into the webapps directory of Tomcat, then go to a URL like this:
      </p>
      <p>http://localhost:8080/fop/fop?fo=/home/path/to/fofile.fo</p>
      <p>http://localhost:8080/fop/fop?xml=/home/path/to/xmlfile.xml&amp;xsl=/home/path/to/xslfile.xsl</p>
-     <p>You can also find the source code there in the file FopServlet.java</p>
-     <p>
-        To compile this code you will need servlet_2_2.jar (or compatible), fop.jar and the sax api in your classpath.
-     </p>
+     <p>The source code for the servlet can be found under xml-fop/examples/servlet/src/FopServlet.java.</p>
      <note>
          Some browsers have problems handling the PDF result sent back to
          the browser. IE is particularly bad and different versions behave
-         differently. Having a ".pdf" on the end of the url may help.
+         differently. Having a ".pdf" on the end of the URL may help.
      </note>
   </section>
+</section>
+<section>
+  <title>Examples</title>
+  <p>
+The directory "xml-fop/examples/embedding" contains several working examples. 
+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>
+  <section>
+    <title>ExampleFO2PDF.java</title>
+    <p>
+This example demonstrates the basic usage pattern to transform an XSL-FO
+file to PDF using FOP.
+    </p>
+    <figure src="images/EmbeddingExampleFO2PDF.png" alt="Example XSL-FO to PDF"/>
+  </section>
+  <section>
+    <title>ExampleXML2FO.java</title>
+    <p>
+This example has nothing to do with FOP. It is there to show you how an XML 
+file can be converted to XSL-FO using XSLT. The JAXP API is used to do the
+transformation. Make sure you've got a JAXP-compliant XSLT processor in your 
+classpath (ex. <fork href="http://xml.apache.org/xalan-j">Xalan</fork>).
+    </p>
+    <figure src="images/EmbeddingExampleXML2FO.png" alt="Example XML to XSL-FO"/>
+  </section>
+  <section>
+    <title>ExampleXML2PDF.java</title>
+    <p>
+This example demonstrates how you can convert an arbitrary XML file to PDF 
+using XSLT and XSL-FO/FOP. It is a combination of the first two examples 
+above. The example uses JAXP to transform the XML file to XSL-FO and FOP to 
+transform the XSL-FO to PDF.
+    </p>
+    <figure src="images/EmbeddingExampleXML2PDF.png" alt="Example XML to PDF (via XSL-FO)"/>
+    <p>
+The output (XSL-FO) from the XSL transformation is piped through to FOP using 
+SAX events. This is the most efficient way to do this because the 
+intermediate result doesn't have to be saved somewhere. Often, novice users 
+save the intermediate result in a file, a byte array or a DOM tree. We 
+strongly discourage you to do this if it isn't absolutely necessary. The 
+performance is significantly higher with SAX.
+    </p>
+  </section>
+  <section>
+    <title>ExampleObj2XML.java</title>
+    <p>
+This example is a preparatory example for the next one. It's an example that 
+shows how an arbitrary Java object can be converted to XML. It's an often 
+needed task to do this. Often people create a DOM tree from a Java object and 
+use that. This is pretty straightforward. The example here however shows how
+to do this using SAX which will probably be faster and not even more 
+complicated once you know how this works.
+    </p>
+    <figure src="images/EmbeddingExampleObj2XML.png" alt="Example Java object to XML"/>
+    <p>
+For this example we've created two classes: ProjectTeam and ProjectMember 
+(found in xml-fop/examples/embedding/java/embedding/model). They represent 
+the same data structure found in 
+xml-fop/examples/embedding/xml/xml/projectteam.xml. We want to serialize a 
+project team with several members which exist as Java objects to XML. 
+Therefore we created the two classes: ProjectTeamInputSource and 
+ProjectTeamXMLReader (in the same place as ProjectTeam above).
+    </p>
+    <p>
+The XMLReader implementation (regard it as a special kind of XML parser)is 
+responsible for creating SAX events from the Java object. The InputSource 
+class is only used to hold the ProjectTeam object to be used.
+    </p>
+    <p>
+Have a look at the source of ExampleObj2XML.java to find out how this is 
+used. For more detailed information see other resources on JAXP (ex. 
+<fork href="http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/xslt/3_generate.html">An older JAXP tutorial</fork>).
+    </p>
+  </section>
+  <section>
+    <title>ExampleObj2PDF.java</title>
+    <p>
+The last example here combines the previous and the third to demonstrate 
+how you can transform a Java object to a PDF directly in one smooth run
+by generating SAX events from the Java object that get fed to an XSL 
+transformation. The result of the transformation is then converted to PDF 
+using FOP as before.
+    </p>
+    <figure src="images/EmbeddingExampleObj2PDF.png" alt="Example Java object to PDF (via XML and XSL-FO)"/>
+  </section>
+  <section>
+    <title>Final notes</title>
+    <p>
+These examples should give you an idea of what's possible. It should be easy 
+to adjust these examples to your needs. For examples, you can use a DOMSource
+instead of a StreamSource to feed a DOM tree as input for an XSL 
+transformation.
+    </p>
+    <p>
+If you think you have a decent example that should be here, contact us via 
+one of the mailing lists and we'll see to it that it gets added. Also, if
+you can't find the solution to your particular problem drop us a message on 
+the fop-user mailing list.
+    </p>
+  </section>
 </section>
     </body>
 </document>
index 13c0f07376dc0639173cf85ad1c04f436a406a01..e0e6aed0b1ab388ec963ef995e8ff8ce0fb1bfe7 100644 (file)
@@ -6,17 +6,31 @@
   <header>
     <title>Examples</title>
   </header>
-<body>
-<section>
-  <title>Examples</title>
-    <p>Examples for the use of xsl:fo can be found in the Fop distribution in
-       the subdirectory xml-fop/docs/examples/fo. You can start transformation of all fo files into pdf
-       files by starting xml-fop/docs/examples/runtests (only source distribution). The resulting test
-       files can be found in xml-fop/docs/examples/tests
+  <body>
+    <table>
+      <caption>Generated examples</caption>
+      <tr>
+        <th>Description</th>
+        <th>XSL-FO file</th>
+        <th>PDF result</th>
+      </tr>
+      <tr>
+        <td>default font characters</td>
+        <td><link href="fo/fonts.fo">fonts.fo</link></td>
+        <td><link href="fo/fonts.fo.pdf">fonts.fo.pdf</link></td>
+      </tr>
+    </table>
+
+    <section>
+      <title>Examples in the distribution</title>
+    <p>Examples for the use of XSL-FO can be found in the FOP distribution in
+       the subdirectory xml-fop/examples/fo. You can start transformation of all fo files into pdf
+       files by starting xml-fop/examples/fo/runtests (only source distribution). The resulting test
+       files can be found in xml-fop/examples/fo/tests
     </p>
     <p>At the moment the following files are part of the distribution:</p>
     <ul>
-      <li>simple.fo - a very simple file which gives use a first impression of the structure of an fo file
+      <li>simple.fo - a very simple file which gives use a first impression of the structure of an XSL-FO file
       </li>
       <li>normal.fo - a simple file showing the use of a 2 level of headings, normal text and a header.
       </li>
       </li>
       <li>list.fo - a short tutorial how to use list fo's and properties
       </li>
-      <li>images.fo - shows how to embed gif and jpg images into the xsl:fo file using external-graphic.
+      <li>images.fo - shows how to embed GIF and JPEG images into the XSL-FO file using external-graphic.
       </li>
       <li>border.fo - a not so simple example how to use borders in tables
       </li>
       <li>extensive.fo - a longer test file containing a lot of different flow objects and properties.
-          A good candidate to test your bugfix or new Fop code.
+          A good candidate to test your bugfix or new FOP code.
       </li>
       <li>leader.fo - shows different uses of fo:leader, p.e. as rule or in a table of content
       </li>
       </li>
       <li>inhprop.fo - shows the use of inherited property values
       </li>
-      <li>instream.fo - shows the use of fo:instream-foreign-object together with svg
+      <li>instream.fo - shows the use of fo:instream-foreign-object together with SVG
       </li>
-      <li>textdeko.fo - shows the use of the property textdecoration
+      <li>textdeko.fo - shows the use of the property text-decoration
       </li>
-      <li>readme.fo - uses an old version of Fop documentation for a longer example
+      <li>readme.fo - uses an old version of FOP documentation for a longer example
       </li>
 
-      <li>Look also into the directory examples/svg. There you find some very extensive svg examples.
-          Just start makedoc.
+      <li>Look also into the directory examples/fo/svg. There you find some very extensive SVG examples.
       </li>
-      <li>In the directory examples/pagination you find a suite of examples showing the use
-          of xsl:fo pagination.
+      <li>In the directory examples/fo/pagination you find a suite of examples showing the use
+          of XSL-FO pagination.
       </li>
     </ul>
-      <p>Developers will find the first steps to a test suite for all implemented formatting objects and
-       properties in xml-fop/test/xml/.</p>
-
-</section>
-</body>
+      <p>
+Developers will find the first steps to a test suite for all implemented
+formatting objects and properties in xml-fop/test/xml/.
+      </p>
+    </section>
+  </body>
 </document>
 
index d200ecd41c447161d5c810cd583446cda24ebb11..a4d4b9739d7cc8dc38a8e75d96fb54e3fe9ab5ff 100644 (file)
@@ -4,36 +4,39 @@
 
 <document>
   <header>
-    <title>FOP</title>
+    <title>Extensions</title>
   </header>
   <body>
-<section>
-  <title>Extensions to FOP</title>
-  <p>Sometimes it is desirable to have extensions to xsl:fo in order to support some feature of the
-     output format which isn't covered by the xsl:fo specification.
-     </p>
-  <section>
-    <title>Default Extensions</title>
-<p>
+    <p>
+Sometimes it is desirable to have extensions to XSL-FO in order to support
+some feature of the output format which isn't covered by the XSL-FO
+specification.
+    </p>
+    <section>
+      <title>Default Extensions</title>
+      <p>
 These extension are available by default. They are automatically loaded
 and you only need to provide the correct namespace for your embedded
-xml markup.
-</p>
-  <section>
-    <title>SVG</title>
-<p>
+XML markup.
+      </p>
+      <section>
+        <title>SVG</title>
+        <p>
 Please see the <link href="svg.html">SVG page</link> for more details.
-</p>
-  </section>
-  <section>
-    <title>Bookmarks</title>
-     <p>To use this standard Fop extension, you need to add a namespace entry for
-     http://xml.apache.org/fop/extensions on the root element. </p>
-
-    <p>You can provide outlines inside the root object (but outside
-       any page-sequences or
-       other formatting objects). Here's an example of an outline entry:</p>
-    <source>
+        </p>
+      </section>
+      <section>
+        <title>Bookmarks</title>
+        <p>
+To use this standard FOP extension, you need to add a namespace entry for
+http://xml.apache.org/fop/extensions on the root element.
+        </p>
+        <p>
+You can provide outlines inside the root object (but outside any
+page-sequences or other formatting objects). Here's an example of an outline
+entry:
+        </p>
+        <source>
 <![CDATA[<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
                xmlns:fox="http://xml.apache.org/fop/extensions">
   <fox:outline internal-destination="sec3">
@@ -44,32 +47,45 @@ Please see the <link href="svg.html">SVG page</link> for more details.
     </fox:outline>
   <fox:outline>
 </fo:root>]]></source>
-    <p>It works similarly to a basic-link. There is also an external-destination
-       property, but it isn't supported currently. See the pdfoutline.fo file in
-      docs/examples/fo for a more complete example.</p>
-  </section>
-  </section>
-  <section>
-    <title>Adding Your Own</title>
-<p>
+        <p>
+It works similarly to a basic-link. There is also an external-destination
+property, but it isn't supported currently. See the pdfoutline.fo file in
+examples/fo/basic for a more complete example.
+        </p>
+      </section>
+      <section>
+        <title>Continued-label (for table-header/-footer</title>
+        <p>
+Please see examples/fo/basic/contlabel.fo
+        </p>
+      </section>
+    </section>
+    <section>
+      <title>Adding Your Own</title>
+        <p>
 To add your own extension you need to do the following things.
-</p>
-<p>
-Write code that implements your extension functionality.
-The easiest place to start is by looking at the code in org.apache.fop.extension.
-</p>
-<p>
-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.
-</p>
-<p>
-Create your fo file with the extra xml data embedded in the file with the correct name space. The examples for svg and pdfoutline.fo show how this can be done.
-</p>
-<p>
-Put your jar file in the classpath and then run fop over the fo file.
-</p>
-
-  </section>
-</section>
-</body>
+        </p>
+        <ol>
+          <li>
+Write code that implements your extension functionality. The easiest place to
+start is by looking at the code in org.apache.fop.extension.
+          </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 your XSL-FO file with the extra XML data embedded in the file with the
+correct name space. The examples for SVG and pdfoutline.fo show how this can
+be done.
+          </li>
+          <li>
+Put your jar file in the classpath and then run fop over the XSL-FO file.
+          </li>
+        </ol>
+    </section>
+  </body>
 </document>
 
index ccdabc69f049a2a919f9cb4b530e83aaa2cf6709..65e55387694d5000eb99bc125ee579a873ba1346 100644 (file)
@@ -9,8 +9,8 @@
       <question>What is FOP?</question>
       <answer>
       <p>
-        FOP is a print formatter for <jump href="#XSLFO">XSL formatting
-        objects</jump>.
+        FOP is a print formatter for <link href="#XSLFO">XSL formatting
+        objects</link>.
       </p>
       <p>
         It can be used to render an XML file containing XSL formatting objects
@@ -66,8 +66,8 @@
       <answer>
         <p>
           XSL is a W3C standard concerned with publishing XML documents. It
-          consists of two parts: <jump href="#XSLT">XSLT</jump> and <jump
-          href="#XSLFO">XSLFO</jump>. The acronym expands to
+          consists of two parts: <link href="#XSLT">XSLT</link> and <link
+          href="#XSLFO">XSLFO</link>. The acronym expands to
           e<strong>X</strong>tensible <strong>S</strong>tylesheet
           <strong>L</strong>anguage.
         </p>
       <answer>
         <p>
           XSLFO is an XML vocabulary that is used to specify a pagination and
-          other styling for page layout output. The acronym &ldquo;FO&rdquo; stands for
+          other styling for page layout output. The acronym &#8220;FO&#8221;
+          stands for
           <strong>F</strong>ormatting <strong>O</strong>bjects. XSLFO can be
-          used in conjunction with <jump href="#XSLT">XSLT</jump> to convert
+          used in conjunction with <link href="#XSLT">XSLT</link> to convert
           from any XML format into a paginated layout ready for printing or
           displaying.
         </p>
       <answer>
         <p>
           XSLT describes the transformation of arbitrary XML input into other
-          XML (like XSLFO), HTML or plain text. The &ldquo;T&rdquo; comes from
+          XML (like XSLFO), HTML or plain text. The &#8220;T&#8221; comes from
           <strong>T</strong>ransformation. For historical reasons, a
-          transformation is often also called a &ldquo;style sheet&rdquo;.
+          transformation is often also called a &#8220;style sheet&#8221;.
         </p>
         <p>
           Synonyms: XSL transformation, XSL:T, XSL style sheet.
       <question>How can I contribute?</question>
       <answer>
         <p>
-          There is always plenty of things to do. See <link>limitations</link>
-          and <link>bugzilla</link>.
+          There is always plenty of things to do. See
+          <link href="involved.html">getting involved</link>.
         </p>
       </answer>
     </faq>
   </part>
   <part>
     <title>Common stumbling blocks</title>
+    <faq>
+      <question>Why does FOP insert a blank page between my page sequences?</question>
+      <answer>
+        <p>
+          This is because spec conformance has been improved.
+        </p>
+        <p>
+          The <link
+          href="http://www.w3.org/TR/xsl/slice7.html#force-page-count">force-page-count
+          property</link> controls how a FO processor pads page sequences in
+          order to get certain page counts or last page numbers. The default is
+          "<code>auto</code>". With this setting, if the next page sequence
+          begins with an odd page number because you set the
+          initial-page-number, and the current page sequence also ends with an
+          odd page number, the processor inserts a blank page to keep odd and
+          even page numbers alternating (similar for the case the current page
+          sequence ends with an even page number and the next page sequence
+          starts with an even page number.
+        </p>
+        <p>
+          If you don't want to have this blank page, use
+          <code>force-page-count="no-force"</code>.
+        </p>
+      </answer>
+    </faq>
     <faq>
       <question>I get the error: [ERROR]: 'master-reference' for
       'fo:page-sequence'matches no 'simple-page-master' or
       'page-sequence-master'</question>
       <answer>
         <p>
-          FOP was changed to be in accordance with the latest standard
-          (see <link href="resources.html#w3-xsl">XSL
-          standard</link>).The page master for a fo:page-sequence is
-          now refereced by the master-reference attribute. Replace the
-          master-name attributes of your fo:page-sequence elements by
-          master-reference attributes. You have to do this also for
-          fo:single-page-master-reference,
+          FOP was changed to be in accordance with the latest standard (see
+          <link href="resources.html#w3-xsl">XSL standard</link>).The page
+          master for a fo:page-sequence is now refereced by the
+          master-reference attribute. Replace the master-name attributes of
+          your fo:page-sequence elements by master-reference attributes. You
+          have to do this also for fo:single-page-master-reference,
           fo:repeatable-page-master-reference and
-          fo:conditional-page-master-reference elements in you page
-          master definitions.
+          fo:conditional-page-master-reference elements in you page master
+          definitions.
         </p>
         <p>
-          See also <link>release notes</link>.
+          See also <link href="relnotes.html">release notes</link>.
         </p>
       </answer>
     </faq>
       <question>My PNG images don't work.</question>
       <answer>
         <p>
-          The Jimi image library, which is used for processing images in PNG and
-          other formats, was removed from the distribution for licensing
-          reasons. You have to <fork href="http://java.sun.com">download</fork>
-          and <link>install</link> it by yourself.
+          The Jimi image library, which is by default used for processing
+          images in PNG and other formats, was removed from the distribution
+          for licensing reasons. You have to <fork
+            href="http://java.sun.com/products/jimi">download</fork>
+          and install it by yourself.
+        </p>
+        <p>
+          Extract the file "JimiProClasses.zip" from the archive you've downloaded, rename it to "jimi-1.0.jar" and move it to FOP's lib directory.
+        </p>
+        <p>
+          An alternative to Jimi is to use Sun's JAI. It is much faster, but
+          not available for all platforms.
         </p>
       </answer>
     </faq>
     <faq>
       <question>I get a NoClassDefFound exception.</question>
       <answer>
-        <p>This is typically a problem with your <link>classpath</link>.</p>
+        <p>
+          This is typically a problem with your <!--link
+            href="classpath.html"-->classpath<!--/link-->.</p>
         <p>If you are running FOP from the command line:</p>
         <ul>
           <li>
           </li>
         </ul>
         <p>
-          If you run FOP embedded in your servlet, web application or other Java
-          application, check the classpath of the application.
+          If you run FOP embedded in your servlet, web application or other
+          Java application, check the classpath of the application.
         </p>
       </answer>
     </faq>
           jaxp.jar, xml4j.jar or lotusxsl.jar.
         </p>
         <p>
-          Incompatible versions of Batik may also cause this problem. Use
-          the version of Batik that comes with FOP.
+          Incompatible versions of Batik may also cause this problem. Use the
+          version of Batik that comes with FOP. It is not always possible to
+          use a more recent version of Batik.
         </p>
       </answer>
     </faq>
         </p>
         <ul>
           <li>
-            Avoid forward <link>references</link>. Forward references cause all
-            pages from the page with the reference on to be held in memory until
-            the page with the referenced element is encountered. Common forward
-            references are table of contents at the beginning of the document
-            and the <link>"page N of TOTAL"</link> in footers. Forward
-            references may be required by the task, however, if you are getting
-            a memory overflow you should at least check whether this is really
-            as necessary as claimed. A TOC, for example, could often be placed
-            at the end of the document without dimishing it's value too much,
-            the paper can be reshuffled after printing, and you can use
-            bookmarks in PDF.
+            Increase memory settings of the JVM, see for example <link
+              href="http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/java.html">the
+              -Xmx option</link>. Be aware that it is usually unwise to
+            increase the memory allocated to the JVM beyond the amount of
+            physical RAM, it will significantly slow down. YMMV.
+          </li>
+          <li>
+            Avoid forward references, that is page number citations to pages to
+            places on pages which follow the citation. Forward references cause
+            all pages from the page with the reference on to be held in memory
+            until the page with the referenced element is encountered. Common
+            forward references are table of contents at the beginning of the
+            document and the <link href="#pagenum">"page N of TOTAL"</link> in
+            footers. Forward references may be required by the task, however,
+            if you are getting a memory overflow you should at least check
+            whether this is really as necessary as claimed. A TOC, for example,
+            could often be placed at the end of the document without dimishing
+            it's value too much, the paper can be reshuffled after printing,
+            and you can use bookmarks in PDF.
           </li>
           <li>
             Avoid large images, especially if they are scaled down. Scale them
             using a higher compression rate.
           </li>
           <li>
-            Use multiple page sequences. FOP starts rendering after the end of a
-            page sequence is encountered. While the actual rendering is done
-            page by page, some memory allocated for other purposes could
-            possibly be freed after the page sequence has been rendered.
+            Use multiple page sequences. FOP starts rendering after the end of
+            page sequence is encountered. While the actual rendering is done
+            page by page, some additional memory allocated for other purposes
+            could be freed after the page sequence has been rendered.
           </li>
           <li>
-            Increase <link>memory settings of the JVM</link>. Be aware that it
-            is usually unwise to increase the memory allocated to the JVM beyond
-            the amount of physical RAM, it will significantly slow down. YMMV.
+            Break down large tables. If you don't use table headers and
+            footers, just start a new table every N rows. With headers and
+            footers, consider integrating them as normal table rows, or, if
+            they are used at page breaks, try to put the information into
+            static content. You can use markers to change them.
           </li>
         </ul>
         <p>
           There are also some bugs which cause FOP to go into an nonterminating
           loop, which also often results in a memory overflow. A characteristic
-          symptom are continuous <jump href="#boxoverflow">box
-          overflows</jump>. Most of them are triggered by elements not fitting
+          symptom are continuous <link href="#boxoverflow">box
+          overflows</link>. Most of them are triggered by elements not fitting
           in the available space, like big images and improperly specified width
           of nested block elements. Look for such stuff and correct it.
         </p>
         <p>
           Reducing memory consumption in general and squishing bugs is an
-          ongoing effort, partially addressed in the
-          <jump href="http://xml.apache.org/fop/design/index.html">redesign</jump>.
+          ongoing effort, partially addressed in the <link
+          href="dev/index.html">redesign</link>.
         </p>
       </answer>
     </faq>
     <faq>
       <question>I get a MalformedURLException.</question>
       <answer>
+        <anchor id="MalformedURL"/>
         <p>
           What you probably think of as "file names" are usually URLs, in
           particular the src attribute of fo:external-graphic.
           <code>path/file.ext</code> or <code>../file.ext</code>. The string
           <code>file:path/file.ext</code> is <em>not</em> a relative URL,
           in fact, it isn't a valid URL at all. A relative URL is subject to a
-          <link>resolving process</link>, which transforms it into an absolute
+          resolving process, which transforms it into an absolute
           URL.
         </p>
-        <p>
-          See <link>Understanding URIs and URLs</link> and <link>Understanding
-          URL resolving</link>.
-        </p>
+        <!--p>
+          See Understanding URIs and URLs and Understanding
+          URL resolving.
+        </p-->
       </answer>
     </faq>
     <faq>
       <question>I get an "[ERROR]: null", or a NullPointerException.</question>
       <answer>
         <p>
-          Most often, you supplied an invalid FO document to FOP. Currently only
-          very common errors are intercepted and produce a comprehensible error
+          This is often caused by an invalid FO document. Currently only very
+          common errors are intercepted and produce a comprehensible error
           message. If you forgot container elements like fo:page-sequence or
           fo:flow and put blocks and inline elements directly as children of
           fo:root or fo:page-sequence, you'll only get a
           whether you got them right.
         </p>
         <p>
-          You may find it helpful to use the <link href="#FO-validate">validation tools</link> to validate your
-FO document. This will catch most problems, but should not be relied upon to catch all.
+          You may find it helpful to use the <link
+            href="#FO-validate">validation tools</link> to validate your
+          FO document. This will catch most problems, but should not be
+          relied upon to catch all.
         </p>
         <p>
           If you use XSLT, problems in your style sheet and in your source XML
@@ -323,14 +372,14 @@ FO document. This will catch most problems, but should not be relied upon to cat
         <p>
           The most likely reason is a known problem with the Java run time
           environment which is triggered by rendering SVGs. Suns JDK 1.4 does
-          not have this problem. See also <jump href="#svghangs">FOP does not
-          exit if a SVG is included</jump>.
+          not have this problem. See also <link href="#svghangs">FOP does not
+          exit if a SVG is included</link>.
         </p>
         <p>
           Another possibility is that FOP went into a non terminating
           loop. Usually this is indicated by lots of log messages of the form
-          "[INFO]: [NNNN]" which indicate a new page has been started or <jump
-          href="#boxoverflow">box overflows</jump>. After some time, FOP will
+          "[INFO]: [NNNN]" which indicate a new page has been started or <link
+          href="#boxoverflow">box overflows</link>. After some time, FOP will
           crash with an OutOfMemoryException.
         </p>
         <p>
@@ -338,7 +387,7 @@ FO document. This will catch most problems, but should not be relied upon to cat
           programm, for example from Java using Runtime.exec(), it may hang
           while trying to write log entries to the output pipe. You have to read
           the FOP output regularly to empty the pipe buffer. It is best to avoid
-          exec'ing FOP, use the library interface.
+          exec'ing FOP, use the library interface instead.
         </p>
       </answer>
     </faq>
@@ -368,22 +417,22 @@ FO document. This will catch most problems, but should not be relied upon to cat
           Relative URLs are resolved against the baseDir property of FOP. For
           the command line FOP application, the baseDir is the directory of the
           input file, either the FO file or the XML source. If FOP is used
-          embedded in a servlet, <link>baseDir can be set explicitely</link>. If
-          it's not set, it is usually the current working directory of the
-          process which runs FOP.
-        </p>
-        <p>
-          See <link>Understanding URIs and URLs</link> and <link>Understanding
-          URL resolving</link>.
+          embedded in a servlet, <link href="embedding.html">baseDir can be
+            set explicitely</link>. If it's not set, it is usually the current
+          working directory of the process which runs FOP.
         </p>
+        <!--p>
+          See Understanding URIs and URLs and Understanding
+          URL resolving.
+        </p-->
       </answer>
     </faq>
     <faq>
       <question>FOP does not find my fonts.</question>
       <answer>
         <p>
-          Did you get: &laquo;Failed to read font metrics file C:\foo\arial.xml
-          : File "C:\foo\arial.xml" not found&raquo;? The value for the
+          Did you get: &#171;Failed to read font metrics file C:\foo\arial.xml
+          : File "C:\foo\arial.xml" not found&#178;? The value for the
           metrics-file attribute in the user config file is actually an URL, not
           a file name. Use "file:///C:/foo/arial.xml" instead.
         </p>
@@ -399,12 +448,12 @@ FO document. This will catch most problems, but should not be relied upon to cat
       don't work.</question>
       <answer>
         <p>
-          These properties are not implemented, except for keep-with-next and
-          keep-with-previous on table rows. In order to take advantage of them,
-          you have to nest stuff to be kept together in a table.
+          These properties are not implemented, except on table rows. In
+          order to take advantage of them, you have to nest stuff to be
+          kept together in a table.
         </p>
         <p>
-          The concept is called &ldquo;blind table&rdquo;. The table is used for
+          The concept is called &#8220;blind table&#8221;. The table is used for
           pure layout reasons and not obvious in the output.
         </p>
         <p>
@@ -412,40 +461,42 @@ FO document. This will catch most problems, but should not be relied upon to cat
         </p>
         <source><![CDATA[<fo:table table-layout="fixed" width="100%">
   <fo:table-column column-width="proportional-column-width(1)"/>
-    <fo:table-body>
-      <fo:table-row keep-with-next="always">
-        <fo:table-cell>
-          <fo:block>
-            <fo:external-graphic src="foo.jpg"/>
-          </fo:block>
-        </fo:table-cell>
-      </fo:table-row>
-      <fo:table-row>
-        <fo:table-cell>
-          <fo:block>Image Caption</fo:block>
-        </fo:table-cell>
-      </fo:table-row>
-    </fo:table-body>
-  </fo:table>]]></source>
+  <fo:table-body>
+    <fo:table-row keep-with-next="always">
+      <fo:table-cell>
+        <fo:block>
+          <fo:external-graphic src="foo.jpg"/>
+        </fo:block>
+      </fo:table-cell>
+    </fo:table-row>
+    <fo:table-row>
+      <fo:table-cell>
+        <fo:block>Image Caption</fo:block>
+      </fo:table-cell>
+    </fo:table-row>
+  </fo:table-body>
+</fo:table>]]></source>
       </answer>
     </faq>
     <faq>
       <question>My tables are missing, or missing their content.</question>
       <answer>
         <p>
-          Check for fo:table-body around the rows. FOP doesn't raise an error if
-          it is omitted, it just drops the content.
+          Check for fo:table-body around the rows. FOP up to 0.20.4 doesn't
+          raise an error if it is omitted, it just drops the content. More
+          recent releases will catch this problem.
         </p>
         <p>
           Also, the fo:table-with-caption element is not implemented, tables
-          within such an element are dropped too. The DocBook style sheets
-          generate fo:table-with-caption elements, so watch out.
+          within such an element are dropped too. FOP generates an error
+          message for this problem. The DocBook style sheets generate
+          fo:table-with-caption elements, so watch out.
         </p>
       </answer>
     </faq>
     <faq>
-      <question>Text overflowing table cells and the like is not clipped. Long text
-        flows into adjacent cells/block, obscuring stuff there.</question>
+      <question>Text overflowing table cells and the like is not clipped. Long
+        text flows into adjacent cells/block, obscuring stuff there.</question>
       <answer>
         <p>
           Clipping as specified by the <code>overflow="hidden"</code> is not yet
@@ -494,7 +545,18 @@ FO document. This will catch most problems, but should not be relied upon to cat
       <question>A graphic is not displayed.</question>
       <answer>
         <p>
-          Several possibilities:
+          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>
         <ul>
           <li>
@@ -506,13 +568,13 @@ FO document. This will catch most problems, but should not be relied upon to cat
             formats known to work)
           </li>
           <li>
-            Something else obscures the graphic, for example stuff from a static
-            content (very rare, but has happened).
+            Something else obscures the graphic, for example stuff from a
+            static content (very rare, but has happened).
           </li>
         </ul>
-        <p>
-          See also <link>supported image formats</link>.
-        </p>
+        <!-- p>
+          See also supported image formats.
+        </p -->
       </answer>
     </faq>
     <faq>
@@ -527,11 +589,11 @@ FO document. This will catch most problems, but should not be relied upon to cat
     </faq>
   </part>
   <part>
-    <title>Embedding FOP. Using FOP in a servlet</title>
+    <title>Embedding FOP. Using FOP in a servlet.</title>
     <faq>
       <question>How do I use FOP in a servlet?</question>
       <answer>
-        <p>Look at the <link>servlet example</link>.</p>
+        <p>Look at the servlet example.</p>
         <p>
           A rather minimal code snippet to demonstrate the basics:
         </p>
@@ -546,13 +608,14 @@ driver.run();</source>
           with IEx and view it later. There are other problems with this code.
         </p>
         <p>
-          Please look into <link>Howto embed FOP in a servlet</link> for all
-          kinds of details.
+          Please look into <link href="embedding.html">Embedding FOP</link>
+          for all kinds of details.
         </p>
       </answer>
     </faq>
     <faq>
-      <question>How do I use FOP in a servlet with an XSLT transformation?</question>
+      <question>How do I use FOP in a servlet with an XSLT
+      transformation?</question>
       <answer>
         <p>
           Use the TraxInputHandler if both the source XML and XSL are read from
@@ -595,10 +658,10 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
           The <code>xmlsource</code> is a placeholder for your actual XML
           source. You can supply a <code>new StreamSource( new
           StringReader(xmlstring))</code> if you have to read the XML from a
-          string. Constructing an XML string and reparse it is not always a good
-          iea, consider to use a SAXSource if you generate your XML. You can, of
-          course, supply a DOMSource or whatever you like. You can also use
-          dynamically generated XSL if you want to.
+          string. Constructing an XML string and reparse it is not always a
+          good idea, consider to use a SAXSource if you generate your XML. You
+          can, of course, supply a DOMSource or whatever you like. You can also
+          use dynamically generated XSL if you want to.
         </p>
         <p>
           Because you have an explicit transformer object, you can set
@@ -615,12 +678,13 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       </answer>
     </faq>
     <faq>
-      <question>How do I use my own fonts when running FOP from a servlet?</question>
+      <question>How do I use my own fonts when running FOP from a
+      servlet?</question>
       <answer>
         <p>
           Declare the fonts in the <code>userconfig.xml</code> file as
-          usual. See <jump href="#usercfg">loading the user configuration
-          file</jump> for further steps.
+          usual. See <link href="#usercfg">loading the user configuration
+          file</link> for further steps.
         </p>
       </answer>
     </faq>
@@ -636,7 +700,7 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
         </p>
         <source>org.apache.fop.configuration.Configuration.put("baseDir","C:\my\base\dir");</source>
         <p>
-          See <jump href="#usercfg">using a user configuration file</jump>
+          See <link href="#usercfg">using a user configuration file</link>
           for caveats.
         </p>
       </answer>
@@ -699,7 +763,7 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       </answer>
     </faq>
     <faq>
-      <question>FOP and multithreading</question>
+      <question>Can FOP be used in multithreaded environments?</question>
       <answer>
         <p>
           FOP is not completely thread safe. At the very least you'll have to
@@ -747,9 +811,12 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
         </p>
         <source>org.apache.fop.configuration.Configuration.put("strokeSVGText", Boolean.FALSE);</source>
         <p>
-          See also <jump href="#usercfg">using a user configuration file</jump>
+          See also <link href="#usercfg">using a user configuration file</link>
           in a servlet.
         </p>
+        <p>
+          This does not work for other renderers.
+        </p>
       </answer>
     </faq>
     <faq>
@@ -793,8 +860,8 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       </answer>
     </faq>
     <faq>
-      <question>Problems with SVG referring to gradients etc. using
-        "uri(#stuff)" (MalformedURLException or stuff not found)</question>
+      <question>I have problems with SVG referring to gradients etc. using
+        "uri(#stuff)". I get a MalformedURLException.</question>
       <answer>
         <p>
           This is really a "resolving relative URI" problem with some
@@ -823,12 +890,6 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
           <li>
             Make sure that the reference is valid in the current SVG document.
           </li>
-          <li>
-            **DOES THIS WORK**
-            Let the URL refer to some location where the gradient could be
-            retrieved, for example if the SVG code is embedded in your XSL,
-            try <code>fill="url(my.xsl#PurpleToWhite)"</code>.
-          </li>
         </ul>
         <p>
           In any case, the referenced stuff has to be pointed to by an URL. It
@@ -842,7 +903,7 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
           but also some effort by a standard committee in order to make the
           semantics of this kind of references in embedded SVG clearer.
         </p>
-        <p>See also <link>MalformedURLException</link></p>
+        <p>See also <link href="#MalformedURL">MalformedURLException</link></p>
       </answer>
     </faq>
   </part>
@@ -852,82 +913,180 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       <question>How do I embed fonts in PDF?</question>
       <answer>
         <p>
-          Provide$$$
+          See the <link href="fonts.html">Fonts</link> page for information
+          about embedding fonts.
         </p>
       </answer>
     </faq>
     <faq>
-      <question>Characters not displayed, or displayed incorrectly, or displayed
-  as "#"</question>
-      <answer>
-        <p>  Answers are that fonts must be available on the target platform, and
-  the selected font must contain glyphs for the desired character.
-</p>
-        <p>  For example, for most symbols, the symbol font has to be selected
-  explicitely (actually: is this a feature or a bug?):
-</p>
-<p>   &lt;fo:inline font-family="Symbol">&amp;#x2205;&lt;/fo:inline></p>
-<p>  gives EMPTY SET while the same characters in the default font results
-  in AE LIGATURE (which happens to occupy the same place in the default
-  font as the EMPTY SET in the Symbol font). The "#" shows up if the
-  selected font does not define a glyph for the translated index.</p>
-        <p>(Still applicable in 0.20.3?)</p>
+      <question>Some characters are not displayed, or displayed incorrectly, or
+      displayed as &#8220;#&#8221;.</question>
+      <answer>
+        <p>
+          There are a few fonts supplied with Acrobat Reader. If you use other
+          fonts, the font must be available on the machine where the PDF is
+          viewed or it must have been embedded in the PDF file. See
+          <link href="fonts.html">embedding fonts</link>.
+        </p>
+        <p>
+          Furthermore, if you select a certain font family, the font must
+          contain glyphs for the desired character. There is an <link
+            href="output.html#pdf-fonts">overview</link> available for the
+          default PDF fonts. For most symbols, it is better to select the symbol
+          font explicitely, for example in order to get the symbol for the
+          mathematical empty set, write:
+        </p>
+        <source><![CDATA[<fo:inline font-family="Symbol">&#x2205;</fo:inline>]]></source>
+        <p>
+          The "#" shows up if the selected font does not define a glyph for the
+          required character, for example if you try:
+        </p>
+        <source><![CDATA[<fo:inline font-family="Helvetica">&#x2205;</fo:inline>]]></source>
       </answer>
     </faq>
     <faq id="PDF-postprocess">
       <question>What tools are available for post-processing my PDF document?</question>
       <answer>
         <ul>
-          <li>The most popular one that we are aware of is <link href="http://www.lowagie.com/iText">iText</link>, which has tools for adding security features, document properties, watermarks, and many other features to PDF files. See also Joerg Pietschmann's <link href="http://marc.theaimsgroup.com/?l=fop-dev&amp;m=102002975028427&amp;w=2">posting on PDF Encryption</link> for an example of Java application using iText.</li>
-        <li>You can use Adobe Acrobat (the full version, not the Reader) to process the file manually or with scripting that it supports.</li>
+          <li>
+            The most popular one that we are aware of is <link
+              href="http://www.lowagie.com/iText">iText</link>, which has tools
+            for adding security features, document properties, watermarks, and
+            many other features to PDF files. FOP and iText can be integrated
+            into one Java application, see sample code for <link
+              href="pdf-security">encryption</link>.
+            The bad news is that iText swallows PDF bookmarks.
+          </li>
+          
+          <li>
+            You can use Adobe Acrobat (the full version, not the Reader) to
+            process the file manually or with scripting that it supports.
+          </li>
         </ul>
       </answer>
     </faq>
-    <faq>
-      <question>How do I add security features (encryption, for example) to my PDF document?</question>
-      <answer>
-        <p>FOP does not currently support this feature. Possible workarounds include those mentioned in the <link href="#PDF-postprocess">PDF Post-Processing FAQ</link>.</p>
+    <faq id="pdf-security">
+      <question>How do I add security features (encryption, disable printing)
+      to my PDF document?</question>
+      <answer>
+        <p>
+          FOP does not currently support this feature. Possible workarounds
+          include those mentioned in the <link href="#PDF-postprocess">PDF
+            Post-Processing FAQ</link>.
+        </p>
+        <p>
+          Some sample code for encrypting a FOP generated PDF with iText to
+          get you started:
+        </p>
+        <source><![CDATA[public static void main(String args[]) {
+  try {
+    ByteArrayOutputStream fopout=new ByteArrayOutputStream();
+    FileOutputStream outfile=new FileOutputStream(args[2]);
+    Driver driver =new Driver();
+    driver.setOutputStream(fopout);
+    driver.setRenderer(Driver.RENDER_PDF);
+    Transformer transformer=TransformerFactory
+      .newInstance().newTransformer(new StreamSource(new File(args[1])));
+    transformer.transform(new StreamSource(new File(args[0])),
+       new SAXResult(driver.getContentHandler()));
+    PdfReader reader = new PdfReader(fopout.toByteArray());
+    int n = reader.getNumberOfPages();
+    Document document = new Document(reader.getPageSizeWithRotation(1));
+    PdfWriter writer = PdfWriter.getInstance(document, outfile);
+    writer.setEncryption(PdfWriter.STRENGTH40BITS, "pdf", null, 
+      PdfWriter.AllowCopy);
+    document.open();
+    PdfContentByte cb = writer.getDirectContent();
+    PdfImportedPage page;
+    int rotation;
+    int i = 0;
+    while (i < n) {
+      i++;
+      document.setPageSize(reader.getPageSizeWithRotation(i));
+      document.newPage();
+      page = writer.getImportedPage(reader, i);
+      rotation = reader.getPageRotation(i);
+      if (rotation == 90 || rotation == 270) {
+        cb.addTemplate(page, 0, -1f, 1f, 0, 0,
+         reader.getPageSizeWithRotation(i).height());  }
+      else {
+        cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
+      }
+      System.out.println("Processed page " + i);
+    }
+    document.close();
+  }
+  catch( Exception e) {
+    e.printStackTrace();
+  }
+}]]></source>
+        <p>
+          Check the iText tutorial and documentation for setting access flags,
+          password, encryption strength and other parameters.
+        </p>
       </answer>
     </faq>
     <faq>
-      <question>How do I add document properties (title, author, etc.) to my PDF document?</question>
+      <question>How do I add document properties (title, author, etc.) to my
+      PDF document?</question>
       <answer>
-        <p>FOP does not currently support this feature. Possible workarounds include those mentioned in the <link href="#PDF-postprocess">PDF Post-Processing FAQ</link>.</p>
+        <p>FOP does not currently support this feature. Possible workarounds
+        include those mentioned in the <link href="#PDF-postprocess">PDF
+        Post-Processing FAQ</link>.</p>
       </answer>
     </faq>
     <faq>
       <question>How do I add watermarks to my PDF document?</question>
       <answer>
-        <p>FOP does not currently support this feature. Possible workarounds:</p>
+        <p>FOP does not currently support this feature. Possible
+        workarounds:</p>
         <ul>
-          <li>See the <link href="#PDF-postprocess">PDF Post-Processing FAQ</link>.</li>
-          <li>(submitted by Trevor_Campbell@kaz.com.au) Place an image in a region that overlaps the flowing text. For example, make region-before large enough to contain your image. Then include a block (if necessary, use an absolutely positioned block-container) containing the watermark image in the static-content for the region-before.</li>
+          <li>
+            Use a background image for the body region.
+          </li>
+          <li>
+            See the <link href="#PDF-postprocess">PDF Post-Processing
+              FAQ</link>.
+          </li>
+          <li>
+            (submitted by Trevor_Campbell@kaz.com.au) Place an image in a
+            region that overlaps the flowing text. For example, make
+            region-before large enough to contain your image. Then include a
+            block (if necessary, use an absolutely positioned block-container)
+            containing the watermark image in the static-content for the
+            region-before. Note that the image will be drawn on top of the
+            normal content.
+          </li>
         </ul>
       </answer>
     </faq>
     <faq>
-      <question>PDF prints contorted</question>
+      <question>The PDF is printed contorted!</question>
       <answer>
-        <p>Check paper size in Acrobat settings and "fit to page" (or something)</p>
-      </answer>
-    </faq>
-    <faq>
-      <question>Controlling Acrobat bookmark display</question>
-      <answer>
-        <p>  Not possible with FOP. Postprocess the PDF.</p>
+        <p>
+          Check the paper size in Acrobat settings and the "fit to page" print
+          setting. Contorted printing is often caused by a mismatched paper
+          format, for example if the setting is "US Letter" but the PDF was
+          made for A4. Sometimes also the printer driver interferes, check its
+          settings too.
+        </p>
       </answer>
     </faq>
     <faq>
-      <question>PDF (more precise: Acrobat Reader) and IEx</question>
+      <question>How do I control the Acrobat bookmark display?</question>
       <answer>
-        <p>see #later</p>
+        <p>
+          FOP does not currently support this feature. Possible workarounds
+          include those mentioned in the <link href="#PDF-postprocess">PDF
+            Post-Processing FAQ</link>.
+        </p>
       </answer>
     </faq>
   </part>
   <part>
     <title>IEx specific stuff</title>
     <faq>
-      <question>The FOP servlet is called multiple times.</question>
+      <question>The FOP servlet is called multiple times!</question>
       <answer>
         <p>
           This is a problem of Internet Explorer requesting the content several
@@ -935,7 +1094,7 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
         </p>
         <ul>
           <li>
-            Use a URL ending in <code>.pdf</code>, like
+            Use an URL ending in <code>.pdf</code>, like
             <code>http://myserver/servlet/stuff.pdf</code>. Yes, the servlet can
             be configured to handle this. If the URL has to contain parameters,
             try to have both the base URL as well as the last parameter end in
@@ -962,12 +1121,12 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       <question>How do I print PDF directly from the browser?</question>
       <answer>
         <p>
-          It depends whether you mean "printing to a printer under control of the
-          server" or "printing on the client's printer".
+          It depends whether you mean "printing to a printer under control of
+          the server" or "printing on the client's printer".
         </p>
         <p>
           For the first problem, look at the print servlet in the FOP
-          examples. You'll have to gather any printer settings in an HTML form
+          examples. You'll have to gather any printer settings in a HTML form
           and send it to the server.
         </p>
         <p>
@@ -994,8 +1153,7 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
           a page:
         </p>
         <source><![CDATA[<?xml version="1.0"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
-  xmlns:svg="http://www.w3.org/2000/svg">
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
     <fo:simple-page-master master-name="content"
       page-width="210mm" page-height="297mm">
@@ -1022,116 +1180,156 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       </answer>
     </faq>
     <faq>
-      <question>(FO) How to get page numbers printed on the "outer side" of the
-        page (for books, obviously)?</question>
+      <question>(FO) How do I center a table horizontally?</question>
       <answer>
         <p>
-          That's about different static content on <jump
-          href="#oddeven">odd/even pages</jump>.
+          You can add a column left and right wich pad the table so that the visible part is centered.
+        </p>
+        <source><![CDATA[<?xml version="1.0"?>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="content"
+      page-width="210mm" page-height="297mm">
+      <fo:region-body/>
+    </fo:simple-page-master>
+  </fo:layout-master-set>
+  <fo:page-sequence master-reference="content">
+    <fo:flow flow-name="xsl-region-body">
+      <fo:table table-layout="fixed" width="100%">
+        <fo:table-column column-width="proportional-column-width(1)"/>
+        <fo:table-column column-width="100mm"/>
+        <fo:table-column column-width="proportional-column-width(1)"/>
+        <fo:table-body>
+          <fo:table-row>
+            <fo:table-cell/>
+            <fo:table-cell>
+              <fo:block>foo</fo:block>
+            </fo:table-cell>
+            <fo:table-cell/>
+          </fo:table-row>
+        </fo:table-body>
+      </fo:table>
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>]]></source>
+        <p>
+          If your table is more complicated, or if defining borders on individual cells becomes too much work, use the code above and nest your table within the moddle cell.
         </p>
       </answer>
     </faq>
     <faq>
-      <question>(FO) How do I get a special header on the first page?</question>
+      <question>(FO) How to get page numbers printed on the "outer side" of the
+        page (for books, for example)?</question>
       <answer>
         <p>
-          You can insert it into the flow instead of the static content.
-          Alternatively, use a page master referring to different page masters
-          for the first page and the rest. It is quite similar to the odd/even
-          page mechanism. A code sample:
+          Place different static content on <link href="#oddeven">odd and even
+          pages</link>.
+        </p>
+      </answer>
+    </faq>
+    <faq id="oddeven">
+      <question>(FO) How do I use different static content for odd and even
+      pages?</question>
+      <answer>
+        <p>
+          There are examples in the FO distribution and in the <link
+          href="http://www.dpawson.co.uk/xsl/sect3/index.html">XSL FAQ FO
+          section</link>.
+        </p>
+        <p>
+          Define a page master with alternating pages masters for odd and even
+          pages, specify appropriate regions in these page masters, and be sure
+          to give them different names. You use these names to put different
+          static content in these regions. A self contained document
+          demonstrating this:
         </p>
         <source><![CDATA[<?xml version="1.0"?>
 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
-    <fo:simple-page-master master-name="first"
+    <fo:simple-page-master master-name="even"
       page-height="297mm" page-width="210mm"
       margin-top="20mm" margin-bottom="20mm"
       margin-left="25mm" margin-right="25mm">
       <fo:region-body margin-bottom="20mm"/>
-      <fo:region-after region-name="footer-first" extent="20mm"/>
+      <fo:region-after region-name="footer-even" extent="20mm"/>
     </fo:simple-page-master>
-    <fo:simple-page-master master-name="rest"
+    <fo:simple-page-master master-name="odd"
       page-height="297mm" page-width="210mm"
       margin-top="20mm" margin-bottom="20mm"
       margin-left="25mm" margin-right="25mm">
       <fo:region-body margin-bottom="20mm"/>
-      <fo:region-after region-name="footer-rest" extent="20mm"/>
+      <fo:region-after region-name="footer-odd" extent="20mm"/>
     </fo:simple-page-master>
     <fo:page-sequence-master master-name="document">
       <fo:repeatable-page-master-alternatives>
-        <fo:conditional-page-master-reference page-position="first"
-          master-reference="first"/>
-        <fo:conditional-page-master-reference page-position="rest"
-          master-reference="rest"/>
+        <fo:conditional-page-master-reference odd-or-even="even"
+          master-reference="even"/>
+        <fo:conditional-page-master-reference odd-or-even="odd"
+          master-reference="odd"/>
       </fo:repeatable-page-master-alternatives>
     </fo:page-sequence-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="document">
-    <fo:static-content flow-name="footer-first">
-      <fo:block text-align="center">First page.</fo:block>
+    <fo:static-content flow-name="footer-even">
+      <fo:block text-align="start"><fo:page-number/></fo:block>
     </fo:static-content>
-    <fo:static-content flow-name="footer-rest">
-      <fo:block text-align-last="center">Other page.</fo:block>
+    <fo:static-content flow-name="footer-odd">
+      <fo:block text-align-last="end"><fo:page-number/></fo:block>
     </fo:static-content>
     <fo:flow flow-name="xsl-region-body">
       <fo:block/>
       <fo:block break-before="page"/>
-      <fo:block break-before="page"/>
     </fo:flow>
   </fo:page-sequence>
 </fo:root>]]></source>
       </answer>
     </faq>
-    <faq id="oddeven">
-      <question>(FO) Different static content for odd/even pages</question>
+    <faq>
+      <question>(FO) How do I get a special header on the first page?</question>
       <answer>
         <p>
-          There are examples in the FO distribution and in the XSL FAQ FO
-          section http://www.dpawson.co.uk/xsl/sect3/index.html
-        </p>
-        <p>
-          Define a page master with alternating pages masters for odd and even
-          pages, specify appropriate regions in these page masters, and be sure
-          to give them different names. You use these names to put different
-          static content in these regions. A self contained document
-          demonstrating this:
+          You can insert it into the flow instead of the static content.
+          Alternatively, use a page master referring to different page masters
+          for the first page and the rest. It is quite similar to the odd/even
+          page mechanism. A code sample:
         </p>
         <source><![CDATA[<?xml version="1.0"?>
 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
   <fo:layout-master-set>
-    <fo:simple-page-master master-name="even"
+    <fo:simple-page-master master-name="first"
       page-height="297mm" page-width="210mm"
       margin-top="20mm" margin-bottom="20mm"
       margin-left="25mm" margin-right="25mm">
       <fo:region-body margin-bottom="20mm"/>
-      <fo:region-after region-name="footer-even" extent="20mm"/>
+      <fo:region-after region-name="footer-first" extent="20mm"/>
     </fo:simple-page-master>
-    <fo:simple-page-master master-name="odd"
+    <fo:simple-page-master master-name="rest"
       page-height="297mm" page-width="210mm"
       margin-top="20mm" margin-bottom="20mm"
       margin-left="25mm" margin-right="25mm">
       <fo:region-body margin-bottom="20mm"/>
-      <fo:region-after region-name="footer-odd" extent="20mm"/>
+      <fo:region-after region-name="footer-rest" extent="20mm"/>
     </fo:simple-page-master>
     <fo:page-sequence-master master-name="document">
       <fo:repeatable-page-master-alternatives>
-        <fo:conditional-page-master-reference odd-or-even="even"
-          master-reference="even"/>
-        <fo:conditional-page-master-reference odd-or-even="odd"
-          master-reference="odd"/>
+        <fo:conditional-page-master-reference page-position="first"
+          master-reference="first"/>
+        <fo:conditional-page-master-reference page-position="rest"
+          master-reference="rest"/>
       </fo:repeatable-page-master-alternatives>
     </fo:page-sequence-master>
   </fo:layout-master-set>
   <fo:page-sequence master-reference="document">
-    <fo:static-content flow-name="footer-even">
-      <fo:block text-align="start"><fo:page-number/></fo:block>
+    <fo:static-content flow-name="footer-first">
+      <fo:block text-align="center">First page.</fo:block>
     </fo:static-content>
-    <fo:static-content flow-name="footer-odd">
-      <fo:block text-align-last="end"><fo:page-number/></fo:block>
+    <fo:static-content flow-name="footer-rest">
+      <fo:block text-align-last="center">Other page.</fo:block>
     </fo:static-content>
     <fo:flow flow-name="xsl-region-body">
       <fo:block/>
       <fo:block break-before="page"/>
+      <fo:block break-before="page"/>
     </fo:flow>
   </fo:page-sequence>
 </fo:root>]]></source>
@@ -1197,21 +1395,35 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       </answer>
     </faq>
     <faq>
-      <question>(FO) How to get Euro sign/checkbox/some other stuff</question>
+      <question>(FO) How do I print an Euro sign, a checkbox or other some other
+      special symbols?</question>
       <answer>
         <p>
-          Try to look it up in the Unicode reference at the <link
+          Try to look the character up in the Unicode reference at the <link
             href="http://www.unicode.org">Unicode Consortium</link>, in
             particular search the <link
             href="http://www.unicode.org/charts/charindex.html">reference by
-            name</link>. Use <link
+            name</link>.
+        </p>
+        <p>
+          Use <link
             href="http://www.w3.org/TR/2000/REC-xml-20001006#sec-references">XML
             character references</link> to put the character into your source
           XML, XSLT or FO.
         </p>
         <p>
-          Watch out for font traps, see #, change font temporarily using
-          fo:inline if necessary.
+          For example, the following will result in an Euro sign:
+        </p>
+        <source><![CDATA[&#x20AC;]]></source>
+        <p>
+          The selected font family must have a glyph for the character you want
+          to show. This is actually a somewhat tricky issue, especially for
+          symbol characters.
+        </p>
+        <p>
+          Some environments provide also a character table utility (like Win2K
+          or WinXP), which can also help you to get an idea what glyphs are
+          available in a certain font.
         </p>
         <p>
           Alternative: Use an embedded graphic: GIF, PNG, SVG, whatever.
@@ -1219,8 +1431,8 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       </answer>
     </faq>
     <faq>
-      <question>(FO) How do I keep linebreaks/hard spaces? How do I get
-        preformatted text displayed as expected.</question>
+      <question>(FO) How do I keep linebreaks and hard spaces? How do I get
+        preformatted text displayed as expected?</question>
       <answer>
         <p>
           The specification provides some properties for this: <link
@@ -1237,16 +1449,17 @@ transformer.transform(xmlsource, new SAXResult(driver.getContentHandler()));</so
       <question>(FO) How do I print the total number of pages, like in "page 1
       of 12"</question>
       <answer>
+        <anchor id="pagenum"/>
         <p>
-          (XSL FAQ)
+          This is an XSL FAQ.
         </p>
         <p>
           Put an empty block with an id at the end of the flow:
         </p>
         <source><![CDATA[<fo:flow ...>
-   ...
+    ...
   <fo:block id="last-page"/>
- </fo:flow>]]></source>
+</fo:flow>]]></source>
         <p>
           Get the number of the last page as follows:
         </p>
@@ -1310,7 +1523,7 @@ class rendtest {
     </faq>
     <faq>
       <question>(FO) The header overlaps body content. The body extends into
-      footer.</question>
+      the footer.</question>
       <answer>
         <p>
           Contrary to popular opinion, the regions on a page may overlap.
@@ -1355,13 +1568,26 @@ class rendtest {
     <faq id="FO-validate">
       <question>(FO) How do I validate my FO document?</question>
       <answer>
-        <p><link href="http://www.renderx.com">RenderX</link> has provided an <link href="http://www.renderx.com/Tests/validator/fo.dtd.html">Unofficial DTD for FO Documents</link>. This document may be helpful in validating general FO issues.</p>
-        <p>FOP also maintains an <link href="http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-fop/docs/foschema/fop.xsd?rev=HEAD&amp;content-type=text/plain">Unofficial FOP Schema</link> in the FOP CVS Repository. This document can be used either to validate against the FO standard, or against the actual FOP implementation. See the notes near the beginning of the document for instructions on how to use it.</p>
+        <p>
+          <link href="http://www.renderx.com">RenderX</link> has provided an
+          <link
+            href="http://www.renderx.com/Tests/validator/fo.dtd.html">Unofficial
+            DTD for FO Documents</link>. This document may be helpful in
+          validating general FO issues.
+        </p>
+        <p>
+          FOP also maintains an <link
+            href="http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-fop/docs/foschema/fop.xsd?rev=HEAD&amp;content-type=text/plain">Unofficial
+            FOP Schema</link> in the FOP CVS Repository. This document can be
+          used either to validate against the FO standard, or against the
+          actual FOP implementation. See the notes near the beginning of the
+          document for instructions on how to use it.
+        </p>
       </answer>
     </faq>
     <faq>
-      <question>(XML) Complaints about &amp;nbsp;. How do I get a non-breaking
-      space in FO?</question>
+      <question>(XML) There are complaints about <code>&amp;nbsp;</code>. How
+        do I get a non-breaking space in FO?</question>
       <answer>
         <p>
           Use &amp;#160; everywhere. In your own XML, you could also use a DTD
@@ -1371,8 +1597,8 @@ class rendtest {
     </faq>
     <faq>
       <question>(XML) There are complaints about undefined entities, for example
-      complaints about &amp;uuml; which used to work in HTML. How do I enter
-      special characters like in HTML?</question>
+        about <code>&amp;uuml;</code> which used to work in HTML. How do I enter
+        special characters like in HTML?</question>
       <answer>
         <p>
           Don't use names as in HTML, use numbers (unless you have a DTD which
@@ -1397,8 +1623,9 @@ class rendtest {
           offending characters.
         </p>
         <p>
-          Refer to the <link>XML specification</link> or to a good tutorial for
-          details of the XML file format.
+          Refer to the <link href="http://www.w3.org/XML/">XML
+            specification</link> or to a good tutorial for details of the XML
+            file format.
         </p>
       </answer>
     </faq>
@@ -1412,19 +1639,20 @@ class rendtest {
           packages producing XML, in particular most XSLT processors, produce by
           default UTF-8 encoded files. If you view them with something not aware
           of the encoding, like Notepad for Win95/98/ME/NT, funny characters are
-          displayed. A &Aring; is a giveaway.
+          displayed. A &#197; is a giveaway.
         </p>
       </answer>
     </faq>
   </part>
   <part>
-    <title>General suggestions. How to solve problems</title>
+    <title>General suggestions. How to solve problems.</title>
     <faq>
-      <question>Where to post bugs</question>
+      <question>Where to post bugs.</question>
       <answer>
         <p>
-          See docs. See also <jump href="#postquestions">"where to post
-          questions"</jump>.
+          See <link href="bugs.html">documentation</link>. See also
+          <link href="#postquestions">"where to post
+          questions"</link>.
         </p>
       </answer>
     </faq>
@@ -1439,7 +1667,7 @@ class rendtest {
             You get exceptions. First, check the FAQ whether the exception is
             mentioned. ClassNotFoundException, NoSuchMethodException and
             NoSuchFieldException problems are almost always a problem with the
-            local environment. Check <link
+            local environment, try to get local help first. Check <link
             href="http://nagoya.apache.org">bugzilla</link>. If still not found,
             post to fop-dev.
           </li>
@@ -1459,17 +1687,21 @@ class rendtest {
             XSLT specific stuff sould go to the <link
             href="http://www.mulberrytech.com/xsl/xsl-list/">XSL
             list</link>. This includes problems with the language and XSLT
-            How-Tos.
+            HOW-TOs.
           </li>
           <li>
             Problems specific to a certain XSLT processor, like Xalan, Saxon or
             MSXML, should be handled by processor specific lists. This includes
             problems with deployment, processor specific extensions, suspected
-            bugs and processor specific APIs.
+            bugs and processor specific APIs. Note that JDK 1.4 comes with an
+            XML parser and an XSLT processor which are older versions of
+            Xerces and Xalan, respectively, and both have a number of annoying
+            bugs. See $$$FIXME on how to use more recent versions or other
+            packages instead.
           </li>
           <li>
             Problems with servlet containers should be asked on the vendor
-            specific lists for these software packets.
+            specific lists for these software packages.
           </li>
           <li>
             More general questions regarding Java, including deployment, Java
index d76e05aa377f699fc0302cab0ccfd86a65478106..478b08a69b05d727ccde13bbff14b226fdfb95db 100644 (file)
     </p>
     <p>Font support in FOP can be extended by the addition of font metric files (written in XML) created from Adobe
     Type 1 fonts and TrueType fonts. No other font types (Type 3, etc.) are supported at this time.
+    More information about font types can be found at
+    the <link href="http://partners.adobe.com/asn/developer/type/ftypes.html">
+    Adobe font types</link>. There is also lots more font information
+    on this <link href="http://partners.adobe.com/asn/developer/technotes/fonts.html">Adobe Font Technote</link>.
     </p>
     <note>
         The font is simply embedded into the PDF file, it is not converted.
       </p>
       <p>Windows:</p>
 <source>
-
-  java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\xalan.jar org.apache.fop.fonts.apps.PFMReader pfm-file xml-file
-
+java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;
+         lib\xercesImpl.jar;lib\xalan.jar
+           org.apache.fop.fonts.apps.PFMReader pfm-file xml-file
 </source>
       <p>Unix:</p>
 <source>
-
-  java -cp build/fop.jar:lib/avalon-framework.jar:lib/xml-apis.jar:lib/xercesImpl.jar:lib/xalan.jar org.apache.fop.fonts.apps.PFMReader pfm-file xml-file
-
+java -cp build/fop.jar:lib/avalon-framework.jar:lib/xml-apis.jar:
+         lib/xercesImpl.jar:lib/xalan.jar
+           org.apache.fop.fonts.apps.PFMReader pfm-file xml-file
 </source>
       <note>
         The classpath in the above example has been simplified for readibity. 
     <section>
       <title>Register the fonts within FOP</title>
       <p>
-                Edit conf/userconfig.xml and add entries for the font
-                if the fonts section,
-                ie:
+        Edit conf/userconfig.xml and add entries for the font
+        if the fonts section,
+        ie:
       </p>
-<source>
-<![CDATA[
-  <font metrics-file="FTL_____.xml" kerning="yes" embed-file="C:\myfonts\FTL_____.pfb">
-    <font-triplet name="FrutigerLight" style="normal" weight="normal">
-  </font>]]>
-
-</source>
+<source><![CDATA[<font metrics-file="FTL_____.xml" kerning="yes"
+      embed-file="C:\myfonts\FTL_____.pfb">
+  <font-triplet name="FrutigerLight" style="normal" weight="normal">
+</font>]]></source>
       <note>
         Starting from FOP version 0.20.5 you can use URLs for the paths to the font files. Relative URLs are resolved 
         relative to the fontBaseDir property (or baseDir) if available.
             the name cmr10.ttf and exists in c:\myfonts\):
       </p>
 <source>
-
-  java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\xalan.jar org.apache.fop.fonts.apps.TTFReader C:\myfonts\cmr10.ttf C:\myfonts\cmr10.ttf ttfcm.xml
-
+java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;
+         lib\xercesImpl.jar;lib\xalan.jar
+           org.apache.fop.fonts.apps.TTFReader
+             C:\myfonts\cmr10.ttf C:\myfonts\cmr10.ttf ttfcm.xml
 </source>
     </section>
     <section>
       Example on generating metrics for a .ttc file:
       </p>
 <source>
-      
-  java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\xalan.jar org.apache.fop.fonts.apps.TTFReader -ttcname "MS Mincho" msmincho.ttc msminch.xml
-
+java -cp build\fop.jar;lib\avalon-framework.jar;lib\xml-apis.jar;
+         lib\xercesImpl.jar;lib\xalan.jar
+           org.apache.fop.fonts.apps.TTFReader -ttcname "MS Mincho"
+             msmincho.ttc msminch.xml
 </source>
     </section>
 
         <p>
           Similiar to Type 1 fonts.
         </p>
-<source>
-<![CDATA[
-  <font metrics-file="cyberbit.xml" kerning="yes" embed-file="C:\WINNT\Fonts\Cyberbit.ttf">
-    <font-triplet name="Cyberbit" style="normal" weight="normal">
-  </font>]]>
-
-</source>
+<source><![CDATA[<font metrics-file="cyberbit.xml" kerning="yes"
+      embed-file="C:\WINNT\Fonts\Cyberbit.ttf">
+  <font-triplet name="Cyberbit" style="normal" weight="normal">
+</font>]]></source>
       </section>
 
   </section>
index f58651e4b4cd387d56dabc756d64205c619ca995..e19aa2ddfbe2b08508a94fb3aa4e31150899cdd4 100644 (file)
       The PDF files on this site are created using current CVS.
     </note>
         <figure width="480" height="260" src="images/document.jpg" alt="Render Diagram" />
-    <p>The latest version of Fop is 0.20.4 and it supports the
+    <p>The latest version of FOP is 0.20.5 and it supports the
        <link href="http://www.w3.org/TR/2001/REC-xsl-20011015/">XSL-FO Version 1.0
        W3C Recommendation</link>.
        You can <link href="download.html">download</link>
-       Fop including a precompiled version, the source code and many example files to
+       FOP including a precompiled version, the source code and many example files to
        get you started. Pointers to introductions into xsl:fo can be found in the
        <link href="resources.html">resources</link> section. Please be aware, that
-       Fop is at the moment not a full implementation of the basic conformance level
+       FOP is at the moment not a full implementation of the basic conformance level
        of the xsl:fo standard. You can find a list of supported flow objects and properties
        in the section <link href="implemented.html">Features</link> and in section
        <link href="limitations.html">Limitations</link> in what way this support is
index bd90a7d8992171c0230d1ed02b9b24a74c585b56..af3d8fb903843187907f692e3bf2b0bbed60332f 100644 (file)
@@ -31,7 +31,7 @@ familiar with these standards. You can find links under
     <title>Fop's Design</title>
     <p>
 The design for FOP is specified under the
-<link href="http://xml.apache.org/fop/design/index.html">Design</link> section.
+<link href="design/index.html">Design</link> section.
     </p>
     <p>
 This is where the information on how FOP is developed and designed
index 8827f8ebebb118eef6d133009c820e9c5ccfa244..fa689168c017fcdf9cc38b09176cc6637b051f37 100644 (file)
@@ -7,6 +7,34 @@
     <title>News</title>
   </header>
   <body>
+    <section>
+           <title>28 January 2003 - FOP logo contest</title>
+               <p>We are looking for a new logo. FOP <link href="logocontest.html">logo
+           contest</link> is started!</p>
+       </section>
+    <section>
+      <title>23 December 2002 - Official FOP Wiki</title>
+      <p>
+      See <link href="http://nagoya.apache.org/wiki/apachewiki.cgi?FOPProjectPages"
+      >FOP project pages</link> at the ApacheWiki.
+      </p>
+    </section>
+    <section>
+      <title>10 December 2002 - FOP 0.20.5 Release Candidate available</title>
+      <p>
+      See the full text of the <link
+      href="http://marc.theaimsgroup.com/?l=fop-user&amp;m=103954279712704&amp;w=2"
+      >announcement</link>.
+      </p>
+    </section>
+    <section>
+      <title>23 November 2002 - EXLSFO project has been created</title>
+      <p>
+      The EXSLFO project is a community effort to define functional extensions
+      to thet XSL Formatting Objects specification. See the
+      <link href="http://exslfo.sourceforge.net">EXSLFO website</link> for details.
+      </p>
+    </section>
     <section>
       <title>22 November 2002 - New Committer</title>
   <p>Welcome Victor Mote!</p>
index fee304c53e9b03bc7485057d7b8db1d9f97a9271..69a01863cc5058841ad0809129ca5d33b4257c78 100644 (file)
@@ -41,7 +41,7 @@ output format and associated data and flow.
 Fonts and Layout - some formats (eg. PDF and AWT) rely on different
 font information. The fonts for these outputs have different sizes
 for the same point size. This means that the layout can be quite
-different for the same fo document.
+different for the same FO document.
     </p>
     <p>
 DPI - This is an important issue when creating output for printing.
@@ -51,13 +51,13 @@ images and the rendering of certain graphics in the output. Currently
 FOP uses a value of 72dpi.
     </p>
     <p>
-You may want to send your output directly to a printer. The Print
-renderer uses the java api to print the document or you might be
+You may want to send your output directly to a printer. The print
+renderer can use the Java API to print the document. You might also be
 able to send the output stream directly to a printer. If your printer
 supports postscript you could send the postscript to the printer. If
 you have a printer that supports PCL you could stream the PCL document
 to your printer.
-On Windows:
+On Windows, you can use:
     </p>
 <source><![CDATA[fop ... -ps \\computername\printer or fop ... -pcl \\computername\printer]]></source>
     <p>
@@ -66,8 +66,8 @@ On UNIX:
 <source><![CDATA[proc = Runtime.getRuntime().exec("lp -d" + print_queue + " -o -dp -");
 out = proc.getOutputStream();]]></source>
     <p>
-And give the OutputStream (out) to the PCLRenderer and it happily sends the
-PCL to the AIX print queue.
+Set the OutputStream (out) to the PCLRenderer and it happily sends the
+PCL to the UNIX printer queue.
     </p>
 </section>
 <section>
@@ -81,6 +81,18 @@ The PDF version supported is 1.3 which is currently the most popular
 version for Acrobat Reader (4.0), PDF versions are forwards/backwards
 compatible.
     </p>
+    <anchor id="pdf-fonts"/>
+    <p>
+      PDF has a set of fonts that are always available to all PDF viewers,
+      to quote from the PDF Specification:
+
+<em>"PDF prescribes a set of 14 standard fonts that can be used without prior
+definition.
+These include four faces each of three Latin text typefaces (Courier,
+Helvetica, and Times), as well as two symbolic fonts (Symbol and ITC Zapf
+Dingbats). These fonts, or suitable substitute fonts with the same metrics, are
+guaranteed to be available in all PDF viewer applications."</em>
+    </p>
 </section>
 <section>
   <title>PCL</title>
index c9933fe0e121d4f7a95f3b7020c655fd6da4ce37..fea8a9de2abde2d93f0580f9dea71dd09eac5fd2 100644 (file)
   <p>This is the last planed release in the 0.20.x series (aka maintenance branch).</p>
   <p>Important changes since the last release (0.20.4):</p>
   <ul>
+    <li>Some hyphenation patterns (cs, da, de, de_DR, el, en, en_US, fr, nl,
+        no, pt, ru, sk, tr) have been removed due to licensing reasons. 
+        We hope to resolve this issue until the final release.
+        (English hyphenation is still available as en_GB)
+    </li>
     <li>Documentation is done with <link href="http://xml.apache.org/forrest/">
-        Forrest</link>. You need to install Forrest if you want build the docs
+        Forrest</link> (version 0.3). You need to install Forrest if you want build the docs
         yourself. (See
         <link href="http://xml.apache.org/forrest/your-project.html">Using Forrest</link>)
     </li>
@@ -26,7 +31,7 @@
         copy JimiProClasses.zip to FOP's lib dir and rename it to jimi-1.0.jar.
     </li>
     <li>Fop has been compiled with
-        <link href="http://java.sun.com/products/java-media/jai">JAI</link>
+        <link href="http://java.sun.com/products/java-media/jai/JAI">JAI</link>
         support. For using JAI you just need to install it.
     </li>
     <li>Links in PDF won't generate multiple link rectangles anymore. If this causes
index f9e03a2c609387836d0c67918fcae6284b5b0d16..685b7da0e9463253b62cc71a7f04538ab9354673 100644 (file)
@@ -3,36 +3,42 @@
     "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/document-v11.dtd">
 
 <document>
-    <header>
-        <title>Running FOP</title>
-    </header>
-
-    <body>
-<section>
+<header>
   <title>Running FOP</title>
+</header>
+
+<body>
   <section>
-    <title>Prerequisites</title>
-    <p>Following software must be installed:</p>
-    <p>a) Java 1.2.x or later</p>
-    <p>b) All libraries you need are part of the Fop distribution and
-          can be found in the xml-fop/lib directory. Look at the batch/shell script fop.bat/fop.sh
-          to see, how Fop can be invoked easily. These libraries are included:
-    </p>
-          <ul>
-            <li>An XML parser which supports SAX and DOM like
-                <jump href="http://xml.apache.org/xerces-j/index.html">Xerces-J</jump>.
-                (Xerces is the default xml parser)
-            </li>
-            <li>An XSLT processor (Xalan is included)
-            </li>
-            <li>The SVG library batik.jar is the library from the <jump href="http://xml.apache.org/batik/">batik project</jump> at xml.apache.org.
-            </li>
-          </ul>
+    <title>Installation</title>
+    <section>
+      <title>Overview</title>
+      <p>The following software must be installed:</p>
+      <ul>
+        <li>Java 1.2.x or later.</li>
+        <li>FOP. The <jump href="http://xml.apache.org/fop/download.html">FOP distribution</jump> includes all libraries that you will need to run a basic FOP installation. These can be found in the xml-fop/lib directory. These libraries include the following:</li>
+        <ul>
+          <li>Apache <jump href="http://xml.apache.org/xerces-j/index.html">Xerces-J</jump> for XML parsing. You can use other XML parsers which support SAX and DOM.</li>
+          <li>Apache Xalan, an XSLT processor.</li>
+          <li>Apache <jump href="http://xml.apache.org/batik/">Batik</jump>, an SVG library.</li>
+        </ul>
+        <li>Optional Libraries</li>
+      </ul>
+    </section>
+    <section>
+      <title>Instructions</title>
+      <p>Basic FOP installation consists of first unzipping the <code>.gz</code> file that is the distribution medium, then unarchiving the resulting <code>.tar</code> 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>
+    </section>
+    <section>
+      <title>Problems</title>
+      <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 <code>tar -xzf</code> instead.</p>
+    </section>
   </section>
 
   <section>
-    <title>Starting FOP as an standalone application</title>
-    <p><code>Fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-pcl|-txt|-svg|-at|-print] &lt;outfile></code></p>
+    <title>Starting FOP as a standalone application</title>
+    <p>Review the batch file fop.bat or the shell script fop.sh to see how FOP is invoked.</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 <code>/Library/Java/Home</code>. <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 <jump href="http://developer.apple.com/java/faq">Java on Mac OSX FAQ</jump> for information as it becomes available.</p>
+    <p><code>fop [options] [-fo|-xml] infile [-xsl file] [-awt|-pdf|-mif|-pcl|-ps|-txt|-svg|-at|-print] &lt;outfile></code></p>
      <p>[OPTIONS]</p>
      <source>
       -d          debug mode<br/>
       -awt              input will be displayed on screen<br/>
       -mif outfile      input will be rendered as mif file (outfile req'd)<br/>
       -pcl outfile      input will be rendered as pcl file (outfile req'd)<br/>
-      -txt outfile      input will be rendered as text file (outfile req'd)<br/>      -svg outfile      input will be rendered as an svg slides file (outfile req'd)
+      -ps outfile       input will be rendered as PostScript file (outfile req'd)<br/>
+      -txt outfile      input will be rendered as text file (outfile req'd)<br/>
+      -svg outfile      input will be rendered as an svg slides file (outfile req'd)
       -at outfile       representation of area tree as XML (outfile req'd)
       -print            input file will be rendered and sent to the printer<br/>                        see options with "-print help"<br/></source>
 
     <p>[Examples]</p>
     <source>
-      Fop foo.fo foo.pdf<br/>
-      Fop -fo foo.fo -pdf foo.pdf (does the same as the previous line)<br/>
-      Fop -xsl foo.xsl -xml foo.xml -pdf foo.pdf<br/>
-      Fop foo.fo -mif foo.mif<br/>
-      Fop foo.fo -print or Fop -print foo.fo<br/>
-      Fop foo.fo -awt<br/></source>
+      fop foo.fo foo.pdf<br/>
+      fop -fo foo.fo -pdf foo.pdf (does the same as the previous line)<br/>
+      fop -xsl foo.xsl -xml foo.xml -pdf foo.pdf<br/>
+      fop foo.fo -mif foo.mif<br/>
+      fop foo.fo -print or Fop -print foo.fo<br/>
+      fop foo.fo -awt<br/></source>
   </section>
 
   <section>
     <title>Problems</title>
     <p>If you have problems running FOP, please have a look at the <jump href="gethelp.html">"How to get Help" page</jump>.</p>
   </section>
-</section>
+
 </body>
 </document>
index b40e054f4b9da001ffa93e074ea11a811d1205c8..2cd7fd9a6cd74379de531de0938483a0baa5f973 100644 (file)
@@ -2,11 +2,14 @@
       <!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.0//EN"
     "http://cvs.apache.org/viewcvs.cgi/*checkout*/xml-forrest/src/resources/schema/dtd/tab-cocoon-v10.dtd">
 
-      <tabs software="MyProj"
-        title="MyProj"
-        copyright="Foo"
-        xmlns:xlink="http://www.w3.org/1999/xlink">
-
-        <tab label="Home" dir=""/>
-
-    </tabs>
+<tabs software="FOP"
+      title="FOP"
+      copyright="@year@ The Apache Software Foundation"
+      xmlns:xlink="http://www.w3.org/1999/xlink">
+  
+  <tab label="Home" dir=""/>
+  <tab label="Development" dir="dev/"/>
+  <tab label="Redesign" dir="design/"/>
+  <tab label="alt design" dir="design/alt.design/"/>
+  
+</tabs>
index 9771703389ab86054ed9550ed9f7d10cd99b88ed..3218de2c408be77118afc4ab102968879659d04a 100644 (file)
@@ -4,13 +4,10 @@
 
 <document>
     <header>
-        <title>SVG</title>
-        <subtitle>Embedding SVG in FOP</subtitle>
+        <title>Testing FOP</title>
     </header>
 
     <body>
-<section>
-  <title>Testing FOP</title>
   <section>
     <title>Running and Using Tests</title>
     <p>
@@ -106,7 +103,6 @@ accuracy by using the transcoding mechanism via Batik. So that the only part tha
 testing is how the SVG image is embedded inside the flow of the fo document.
     </p>
   </section>
-</section>
 </body>
 </document>