keiron 01/12/03 02:08:54
Modified: sources/fop architecture.xml compiling.xml configuration.xml
embedding.xml examples.xml extensions.xml faq.xml
implemented.xml license.xml limitations.xml
properties.xml readme.xml resources.xml running.xml
svg.xml testing.xml
Added: sources/fop document.jpg layout.jpg title.jpg
Log:
updated docs from fop cvs
Revision Changes Path
1.7 +13 -57 xml-site/sources/fop/architecture.xml
Index: architecture.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/architecture.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- architecture.xml 2001/06/15 12:03:02 1.6
+++ architecture.xml 2001/12/03 10:08:53 1.7
@@ -1,7 +1,16 @@
<?xml version="1.0" standalone="no"?>
<!-- by Arved Sandstrom -->
+<document>
+ <header>
+ <title>Architecture</title>
+ <subtitle>Architecture information for FOP</subtitle>
+ <authors>
+ </authors>
+ </header>
+ <body>
+
<s1 title="FOP Mechanics">
<s2 title="Introduction">
@@ -12,14 +21,8 @@
<source>Driver driver = new Driver();<br/>
driver.setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);<br/>
-driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");<br/>
-driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");<br/>
-driver.addPropertyList("org.apache.fop.fo.StandardPropertyListMapping");<br/>
-driver.addPropertyList("org.apache.fop.svg.SVGPropertyListMapping");<br/>
driver.setOutputStream(new FileOutputStream(args[1]));<br/>
-driver.buildFOTree(parser, fileInputSource(args[0]));<br/>
-driver.format();<br/>
-driver.render();</source>
+driver.render(parser, inputHandler.getInputSource());</source>
</s2>
<s2 title="Formatting Object Tree">
@@ -43,56 +46,6 @@
<p><code>  FObjMixed      SequenceSpecifier
</code></p>
-<p>FO's extending FObj:</p>
-
-<p>Package org.apache.fop.fo.pagination:</p>
-
-
-<p><code> LayoutMasterSet</code></p>
-<p><code> PageSequence</code></p>
-<p><code> RegionAfter</code></p>
-<p><code> RegionBefore</code></p>
-<p><code> RegionBody</code></p>
-<p><code> Root</code></p>
-<p><code> SequenceSpecification</code></p>
-<p><code> SimplePageMaster</code></p>
-
-
- <p>Package org.apache.fop.fo.flow:</p>
-
-
-<p><code>BlockContainer</code></p>
-<p><code>DisplayGraphic</code></p>
-<p><code>DisplayRule</code></p>
-<p><code>DisplaySequence</code></p>
-<p><code>Flow</code></p>
-<p><code>InlineGraphic</code></p>
-<p><code>ListBlock</code></p>
-<p><code>ListItem</code></p>
-<p><code>ListItemBody</code></p>
-<p><code>ListItemLabel</code></p>
-<p><code>PageNumber</code></p>
-<p><code>StaticContent</code></p>
-<p><code>Table</code></p>
-<p><code>TableBody</code></p>
-<p><code>TableCell</code></p>
-<p><code>TableColumn</code></p>
-<p><code>TableRow</code></p>
-
-<p>FO's extending SequenceSpecifier:</p>
-
- <p>Package org.apache.fop.fo.pagination:</p>
-
-
-<p><code>SequenceSpecifierAlternating</code></p>
-<p><code>SequenceSpecifierRepeating</code></p>
-<p><code>SequenceSpecifierSingle</code></p>
-
-<p>FO's extending FObjMixed:</p>
-
- <p>Package org.apache.fop.fo.flow:</p>
-
-
<p><code>Block</code></p>
<p><code>Inline</code></p>
<p><code>BasicLink</code></p>
@@ -349,3 +302,6 @@
</p>
</s2>
</s1>
+ </body>
+</document>
+
1.8 +1 -1 xml-site/sources/fop/compiling.xml
Index: compiling.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/compiling.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- compiling.xml 2001/06/15 12:03:02 1.7
+++ compiling.xml 2001/12/03 10:08:53 1.8
@@ -8,7 +8,7 @@
can start one of these scripts, you have to setup your classpath and
the environment variable JAVA_HOME (see below).</p>
<p> The compilation uses Ant,
a replacement of make (you can find more information about Ant at
- <jump
href="http://jakarta.apache.org/ant/">jakarte.apache.org</jump>).
+ <jump
href="http://jakarta.apache.org/ant/">jakarta.apache.org</jump>).
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>
1.2 +2 -1 xml-site/sources/fop/configuration.xml
Index: configuration.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/configuration.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- configuration.xml 2001/02/06 08:56:24 1.1
+++ configuration.xml 2001/12/03 10:08:53 1.2
@@ -12,7 +12,8 @@
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 <jump href="running.html">Running Fop</jump>
for details.
+ the command line. See <jump href="running.html">Running Fop</jump>
+ or <jump href="embedding.html">Embedding Fop</jump> for details.
</p>
</s2>
<s2 title="setting up hyphenation">
1.7 +68 -12 xml-site/sources/fop/embedding.xml
Index: embedding.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/embedding.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- embedding.xml 2001/04/03 13:47:45 1.6
+++ embedding.xml 2001/12/03 10:08:53 1.7
@@ -1,21 +1,22 @@
<?xml version="1.0" standalone="no"?>
-
<!-- Embedding FOP -->
<s1 title="Embedding FOP ">
<s2 title="Overview">
<p>Instantiate org.apache.fop.apps.Driver. Once this class is
instantiated, methods are called to set the
- Renderer to use, the (possibly multiple) ElementMapping(s) to
- use and the OutputStream to use to output the results of the
+ Renderer to use
+ and the OutputStream to use to output the results of the
rendering (where applicable). In the case of the Renderer and
ElementMapping(s), the Driver may be supplied either with the
object itself, or the name of the class, in which case Driver will
instantiate the class itself. The advantage of the latter is it
enables runtime determination of Renderer and ElementMapping(s).
</p>
+ </s2>
+ <s2 title="Examples">
<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.
@@ -26,14 +27,35 @@
Driver driver = new Driver(new InputSource (args[0]),
new FileOutputStream(args[1]));
driver.setRenderer(RENDER_PDF);
- driver.run();
-]]></source>
+ driver.run();]]></source>
+
+ <p>You also need to set the Logger for logging messages, see
+ <jump href="http://jakarta.apache.org/avalon/logkit/index.html">Jakarta
Logkit</jump>
+ for more information.
+ </p>
+ <source><![CDATA[
+ Hierarchy hierarchy = Hierarchy.getDefaultHierarchy();
+ PatternFormatter formatter = new PatternFormatter(
+ "[%{priority}]: %{message}\n%{throwable}" );
+ LogTarget target = null;
+ target = new StreamTarget(System.out, formatter);
+
+ hierarchy.setDefaultLogTarget(target);
+ log = hierarchy.getLoggerFor("fop");
+ log.setPriority(Priority.INFO);
+ driver.setLogger(log);]]></source>
+
+ <p>To setup the user config file you can do the following
+ </p>
+ <source><![CDATA[
+ userConfigFile = new File(userConfig);
+ options = new Options(userConfigFile);]]></source>
- <p>Once the Driver is set up, the buildFOTree method
+ <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 buildFOTree(Document) or
- buildFOTree(Parser, InputSource) respectively.
+ invocation of the method is either render(Document) or
+ render(Parser, InputSource) respectively.
</p>
<p>A third possibility may be used to build the FO Tree, namely
calling getContentHandler() and firing the SAX events yourself.
@@ -45,13 +67,44 @@
<source><![CDATA[
Driver driver = new Driver();
driver.setRenderer(Driver.RENDER_PDF);
- driver.buildFOTree(parser, fileInputSource(args[0]));
- driver.format();
+ driver.setInputSource(new FileInputSource(args[0]));
driver.setOutputStream(new FileOutputStream(args[1]));
- driver.render();
-]]></source>
+ driver.run();]]></source>
+ <p>You can also specify an xml and xsl file for the input.
+ </p>
+ <p>Here is an example use of Driver with the XSLTInputHandler:</p>
+ <source><![CDATA[
+ Driver driver = new Driver();
+ driver.setRenderer(Driver.RENDER_PDF);
+ InputHandler inputHandler = new XSLTInputHandler(xmlFile, xslFile);
+ 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>
+<note>If your 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
+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>
+</p>
</s2>
+ <s2 title="Hints">
+ <p>
+If FOP is going to be used multiple times within your application
+it may be useful to reuse certain objects to save time.
+ </p>
+ <p>
+The renderers and the driver can both be reused. A renderer is reusable
+once the previous render has been completed. The driver is reuseable
+after the rendering is complete and the reset method is called.
+You will need to setup the driver again with a new OutputStream,
+IntputStream and renderer.
+ </p>
+ </s2>
<s2 title="Using Fop in a servlet">
<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
@@ -59,6 +112,9 @@
</p>
<p>http://localhost:8080/fop/fop?fo=/home/path/to/fofile.fo</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>
</s2>
</s1>
1.7 +0 -4 xml-site/sources/fop/examples.xml
Index: examples.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/examples.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- examples.xml 2001/06/15 12:03:03 1.6
+++ examples.xml 2001/12/03 10:08:53 1.7
@@ -45,10 +45,6 @@
<li>In the directory examples/pagination you find a suite of examples
showing the use
of xsl:fo pagination.
</li>
- <li>If you are interested in using svg, you may want to look into the
- <jump href="http://xml.apache.org/dist/fop/svgtestsuite.jar">svg
test suite</jump>, which
- must be downloaded separately (ca. 2.1 MB).
- </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>
1.3 +39 -6 xml-site/sources/fop/extensions.xml
Index: extensions.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/extensions.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- extensions.xml 2001/04/03 13:47:45 1.2
+++ extensions.xml 2001/12/03 10:08:53 1.3
@@ -1,13 +1,27 @@
<?xml version="1.0" standalone="no"?>
-<s1 title="FOP extensions to xsl:fo">
+<s1 title="Extensions to FOP">
<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.
- To use the Fop extensions, you need to add a namespace entry for
+ </p>
+ <s2 title="Default Extensions">
+<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>
+ <s3 title="SVG">
+<p>
+Please see the <jump href="svg.html">SVG page</jump> for more details.
+</p>
+ </s3>
+ <s3 title="Bookmarks">
+ <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>
- <s2 title="Bookmarks">
- <p>You can provide outlines inside the root object (but outside any
page-sequences or
+
+ <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"
@@ -19,11 +33,30 @@
<fox:label>Prerequisites</fox:label>
</fox:outline>
<fox:outline>
-</fo:root>
-]]></source>
+</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>
+ </s3>
+ </s2>
+ <s2 title="Adding Your Own">
+<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>
+
</s2>
</s1>
1.8 +109 -4 xml-site/sources/fop/faq.xml
Index: faq.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/faq.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- faq.xml 2001/02/06 08:56:25 1.7
+++ faq.xml 2001/12/03 10:08:53 1.8
@@ -1,9 +1,114 @@
<?xml version="1.0"?>
+<!DOCTYPE faqs SYSTEM "../dtd/faq-v10.dtd">
+<faqs title="Frequently Asked Questions">
+<faq>
+ <question>About the FAQ</question>
+ <answer>
+ <p>
+ Here we have some answers to common questions about FOP. This only
covers
+ general information about getting started with FOP and pointers to
more
+ information.
+ </p>
+ <p>
+ For up to date information or more details please visit the Fop FAQ
site.
+ The site uses Jyve to provide an interactive FAQ:
+ <jump
href="http://www.owal.co.uk:8090/asf/servlet/asf/screen/DisplayTopics/action/SetAll/project_id/18/faq_id/276">http://www.OWAL.co.uk:8090/</jump>
+ </p>
+ </answer>
+</faq>
+<faq>
+ <question>What is FOP?</question>
+ <answer>
+ <p>
+ FOP is a print formatter for XSL formatting objects.
+ </p>
+ <p>
+ It can be used to render an XML file containing XSL formatting
objects
+ into a page layout. The main target is PDF but other rendering
targets
+ are supported, such as AWT, PCL, text and direct printing.
+ </p>
+ </answer>
+</faq>
+<faq>
+ <question>How does FOP interact with other Apache Projects?</question>
+ <answer>
+ <p>
+ FOP is distributed with <jump
href="http://xml.apache.org/cocoon">Cocoon</jump> as a PDF serializer for XSL
(FO) documents.
+ </p>
+ <p>
+ <jump href="http://xml.apache.org/batik">Batik</jump> can be used
with FOP to <jump
href="http://xml.apache.org/batik/svgrasterizer.html">transcode an SVG
image</jump> into a PDF document.
+ The mime type for PDF is "application/pdf".
+ </p>
+ </answer>
+</faq>
+<faq>
+ <question>What is XSL (FO)?</question>
+ <answer>
+ <p>
+XSL is an XML format that is used to specify a pagination and other
+styling for page layout output. XSL can be used in conjunction with
+XSLT to convert from any XML format into a paginated layout ready for
+printing or displaying.
+ </p>
+ <p>
+XSL defines a set of formatting objects in xml that describes the
+way pages are set up. The contents of the pages are filled from
+flows which. There can be static flows that appear on every page
+and the main flow which fills the body of the page.
+ </p>
+ </answer>
+</faq>
-<s1 title="Frequently Asked Questions">
- <p>The Fop faq has an own site. Please look here:
- <jump
href="http://www.owal.co.uk:8090/asf/servlet/asf/screen/DisplayTopics/action/SetAll/project_id/18/faq_id/276">http://www.OWAL.co.uk:8090/</jump>
+<faq>
+ <question>What can I do with FOP?</question>
+ <answer>
+ <p>
+FOP is an application or library that converts an XSL FO document
+into the paginated output. It is possible to render the output
+to different targets, the main target is PDF. FOP can be run from
+the command line or embedded into your Java application.
</p>
-</s1>
+ <p>
+The XSL FO can be delivered to FOP with XML(XSL FO), XML+XSL or
+SAX events.
+ </p>
+ </answer>
+</faq>
+
+<faq>
+ <question>How can I contribute?</question>
+ <answer>
+ <p>
+There is always plenty of things to do.
+ </p>
+ </answer>
+</faq>
+
+<faq>
+ <question>How do I author XSL documents?</question>
+ <answer>
+ <p>
+Often XSL FO is created from XML and XSLT. There are some
+standard XML markups such as Docbook that can be converted
+into XSL FO and other XML formats.
+ </p>
+ <p>
+There are some XSL authoring tools that may help you to
+author XSL FO documents or the XML and XSLT documents.
+ </p>
+ </answer>
+</faq>
+
+<faq>
+ <question>How can I see a demo?</question>
+ <answer>
+ <p>
+ There will be a Java Webstart demo sometime in the future.
+This will use the AWT viewer to display FO documents.
+ </p>
+ </answer>
+</faq>
+
+</faqs>
1.9 +2 -2 xml-site/sources/fop/implemented.xml
Index: implemented.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/implemented.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- implemented.xml 2001/06/15 12:03:03 1.8
+++ implemented.xml 2001/12/03 10:08:53 1.9
@@ -39,8 +39,8 @@
<s3 title="B.2 Block Formatting Objects">
<ul>
<li>block </li>
+ <li>block-container (limited)</li>
</ul>
- <p>Not implemented: block-container</p>
</s3>
<s3 title="B.3 Inline Formatting Objects">
@@ -97,8 +97,8 @@
<s3 title="B.8 Other Formatting Objects">
<ul>
<li>wrapper</li>
+ <li>marker, retrieve marker</li>
</ul>
- <p>Not implemented: marker, retrieve-marker</p>
</s3>
</s2>
1.4 +1 -1 xml-site/sources/fop/license.xml
Index: license.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/license.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- license.xml 2000/08/10 15:25:04 1.3
+++ license.xml 2001/12/03 10:08:53 1.4
@@ -5,7 +5,7 @@
<s1 title="License">
<s2 title="The Apache Software License, Version 1.1">
- <p> Copyright (C) 1999 The Apache Software Foundation. All rights
reserved.</p>
+ <p> Copyright (C) 1999-2001 The Apache Software Foundation. All rights
reserved.</p>
<p> Redistribution and use in source and binary forms, with or without
modification,
are permitted provided that the following conditions are met:</p>
<p>1. Redistributions of source code must retain the above copyright
notice,
1.7 +33 -30 xml-site/sources/fop/limitations.xml
Index: limitations.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/limitations.xml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- limitations.xml 2001/04/03 13:47:45 1.6
+++ limitations.xml 2001/12/03 10:08:53 1.7
@@ -32,36 +32,39 @@
2) Cells have to contain block-level FOs. They can't contain straight
character data.
</p>
<p>A working basic example of a table looks like this: </p>
- <p><code><fo:table></code></p>
- <p><code> <fo:table-column column-width="150pt"/></code></p>
- <p><code> <fo:table-column column-width="150pt"/></code></p>
- <p><code> <fo:table-body font-size="10pt"
font-family="sans-serif"></code></p>
- <p><code>  <fo:table-row></code></p>
- <p><code>   <fo:table-cell></code></p>
-
<p><code>    <fo:block>text</fo:block></code></p>
- <p><code>   </fo:table-cell></code></p>
- <p><code>   <fo:table-cell></code></p>
-
<p><code>    <fo:block>text</fo:block></code></p>
- <p><code>   </fo:table-cell></code></p>
- <p><code>  </fo:table-row></code></p>
- <p><code>  <fo:table-row></code></p>
- <p><code>   <fo:table-cell></code></p>
-
<p><code>    <fo:block>text</fo:block></code></p>
- <p><code>   </fo:table-cell></code></p>
- <p><code>   <fo:table-cell></code></p>
-
<p><code>    <fo:block>text</fo:block></code></p>
- <p><code>   </fo:table-cell></code></p>
- <p><code>  </fo:table-row></code></p>
- <p><code>  <fo:table-row></code></p>
- <p><code>   <fo:table-cell></code></p>
-
<p><code>    <fo:block>text</fo:block></code></p>
- <p><code>   </fo:table-cell></code></p>
- <p><code>   <fo:table-cell></code></p>
-
<p><code>    <fo:block>text</fo:block></code></p>
- <p><code>   </fo:table-cell></code></p>
- <p><code>  </fo:table-row></code></p>
- <p><code> </fo:table-body></code></p>
- <p><code></fo:table></code></p>
+<p>
+ <source><![CDATA[
+<fo:table>
+ <fo:table-column column-width="150pt"/>
+ <fo:table-column column-width="150pt"/>
+ <fo:table-body font-size="10pt" font-family="sans-serif">
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block>text</fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block>text</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block>text</fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block>text</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block>text</fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block>text</fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+</fo:table>]]></source>
+</p>
</s2>
1.4 +0 -0 xml-site/sources/fop/properties.xml
Index: properties.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/properties.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- properties.xml 2001/06/15 12:03:04 1.3
+++ properties.xml 2001/12/03 10:08:54 1.4
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- $Id: properties.xml,v 1.3 2001/06/15 12:03:04 fotis Exp $ -->
+<!-- $Id: properties.xml,v 1.4 2001/12/03 10:08:54 keiron Exp $ -->
<!--
Authors:
Karen Lease
1.12 +58 -36 xml-site/sources/fop/readme.xml
Index: readme.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/readme.xml,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- readme.xml 2001/06/20 07:52:12 1.11
+++ readme.xml 2001/12/03 10:08:54 1.12
@@ -2,20 +2,35 @@
<!-- Overview -->
-<s1 title="Fop">
- <s2 title="What is FOP?">
+<document>
+ <header>
+ <title>FOP</title>
+ <subtitle>XSL Formatter - Renderer in Java</subtitle>
+ <authors>
+ </authors>
+ </header>
+
+ <body>
+<s1 title="FOP">
+<p>
+ <figure width="300" height="100" src="title.jpg" alt="FOP Title" />
+</p>
<p>FOP is the world's first print formatter driven by XSL formatting
- objects. It is a Java application that reads a formatting object
- tree and then turns it into a PDF document. The formatting object
- tree, can be in the form of an XML document (output by an XSLT engine
- like XT or Xalan) or can be passed in memory as a DOM Document or (in
- the case of XT) SAX events.
- </p>
- <p>The latest version of Fop is 0.19 and it supports the xsl:fo
candidate release.
+ objects and the world's first output independent formatter. It is a
+ Java application that reads a formatting object tree and then
+ renders the resulting pages to a specified output. Output formats
+ currently supported are PDF, PCL, SVG, XML (area tree representation),
+ Print, AWT, MIF and TXT.
+ The primary output target is PDF.
+ </p>
+<p>
+ <figure width="480" height="260" src="document.jpg" alt="Render
Diagram" />
+</p>
+ <p>The latest version of Fop is 0.20.2 and it supports the xsl:fo
candidate release.
You can <jump href="download.html">download</jump>
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
- section <jump href="specs.html">specifications</jump>. Please be
aware, that
+ <jump href="resources.html">resources</jump> section. Please be
aware, that
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 <jump href="implemented.html">Features</jump> and in
section
@@ -23,14 +38,35 @@
limited.
</p>
<p>FOP is part of Apache's XML project. The homepage of FOP is
- <jump
href="http://xml.apache.org/fop">http://xml.apache.org/fop</jump>. A list
- of known bugs, the committers to this project and the tasks they are
working on can be found
- in the file <jump
href="http://xml.apache.org/websrc/cvsweb.cgi/xml-fop/">Status</jump> in the
- root of your Fop distribution. A history of the latest changes to the
project can be found in CHANGES.
+ <jump
href="http://xml.apache.org/fop">http://xml.apache.org/fop</jump>.
+Here you can find information about using and developing with FOP.
</p>
- </s2>
+ </s1>
- <s2 title="FOP Objectives">
+ <s1 title="Formatting">
+<p>
+ <figure width="480" height="260" src="layout.jpg" alt="Formatting
Diagram" />
+</p>
+<p>
+This image is a demonstration of a two page document. The xml data on the
left
+is formatted into the two pages on the right. The document contains static
areas
+that appear on every page, an external graphic in this case an svg document.
+There is a footnote on the first page and a table that goes across both
pages.
+</p>
+<p>
+The advantage of XSL is the ability to take an XML document and to format
+the information into a page layout. The XML document can be generated
+in any way, the most common would be to use XSLT. FOP takes the XML
+and formats the data into pages. The pages are then rendered to the
+requested output.
+</p>
+<p>
+This is a real document. The image was created by rendering the document
+to the svg renderer then putting the rendered pages into an svg document
+along with the xml.
+</p>
+ </s1>
+ <s1 title="FOP Objectives">
<p>The goals of the Apache XML FOP Project are to deliver an XSL FO->PDF
formatter that is compliant to at least the Basic
conformance level described in the W3C Candidate Recommendation 21
November 2000, and that complies with the 11 March 1999 Portable Document
Format Specification (Version 1.3) from Adobe Systems.
@@ -38,28 +74,14 @@
<p>Conformance to the XML 1.0 Recommendation, XSLT 1.0 Recommendation
and the XML Namespaces Recommendation is
understood. Other relevant documents, such as the XPath and XLink
Working Drafts, are referenced as necessary. The FOP
- Project will attempt to use the latest version of evolving
specifications.
- </p>
-
- <p>Secondary goals of the FOP Project (also, "FOP") are desirable
requirements that also have a high priority.
- </p>
-
- <p>One secondary goal of the FOP Project is to deliver a follow-on
version of the formatter that is compliant to the Extended
- conformance level described in the XSL FO. Any formatting objects
that cannot be translated into PDF will be explicitly
- identified as such.
- </p>
-
- <p>Another secondary goal is to improve the conversion of SVG into PDF.
- This includes the use of FOP to work as a transcoder for Batik to
convert
- an SVG document into a PDF document and the fully support embedding
SVG inside
- fo documents in an fo:instream-foreign-object.
+ Project will attempt to use the latest version of evolving
specifications.
</p>
- <p>A final secondary goal is the continued refinement of the FOP design
and implementation. In particular, maintaining the
- separation between formatting and rendering, continuing to support the
AWT Viewer renderer (backend), and providing
- new renderers, are all desirable objectives.
+ <p>To reach this aim currently the layout system is being redesigned to
+better handle the formatting of all different types of formatting objects.
</p>
- </s2>
+ </s1>
-</s1>
+ </body>
+</document>
1.3 +16 -5 xml-site/sources/fop/resources.xml
Index: resources.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/resources.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- resources.xml 2001/04/03 13:47:45 1.2
+++ resources.xml 2001/12/03 10:08:54 1.3
@@ -2,25 +2,34 @@
<!-- FOP Relevant Specifications and links -->
+<document>
+ <header>
+ <title>Resources</title>
+ <subtitle>Resources useful for developing and using FOP</subtitle>
+ <authors>
+ </authors>
+ </header>
+ <body>
+
<s1 title="FOP Relevant Specifications and Links">
<s2 title="Specifications">
<ul>
- <li><jump href="http://www.w3.org/TR/2000/CR-xsl-20001121/">XSL-FO
Candidate Recommendation (21 November 2000)</jump></li>
+ <li><jump href="http://www.w3.org/TR/2001/REC-xsl-20011015/">XSL-FO
Recommendation (15 October 2001)</jump></li>
<li><jump
href="http://www.renderx.com/Tests/validator/fo2000.dtd.html">A dtd for the
XSL-FO CR from November provided by N. Grigoriev from RenderX</jump></li>
- <li><jump href="http://www.w3.org/TR/2000/CR-SVG-20001102/">Supported
SVG Candidate Recommendation (02 November 2000)</jump></li>
+ <li><jump href="http://www.w3.org/TR/SVG/">Supported SVG Recommendation
(04 September 2001)</jump></li>
<li><jump href="http://www.w3.org/TR/REC-xml">XML
Recommendation</jump></li>
<li><jump href="http://www.w3.org/TR/xslt">XSLT
Recommendation</jump></li>
<li><jump
href="http://partners.adobe.com/asn/developer/acrosdk/DOCS/pdfspec.pdf">Portable
Document Format (PDF) 1.3 Reference Manual </jump></li>
- <li><jump href="http://www.megginson.com/SAX/">Simple API for XML
(SAX)</jump></li>
+ <li><jump href="http://sax.sourceforge.net/">Simple API for XML
(SAX)</jump></li>
<li><jump href="http://www.w3.org/TR/REC-DOM-Level-1">Document Object
Model (DOM)</jump></li>
<li><jump href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML
Recommendation</jump></li>
- <li><jump
href="http://java.sun.com/products/jdk/1.1/docs/index.html">Java JDK 1.1
Documentation</jump></li>
+ <li><jump href="http://java.sun.com/j2se/1.3/docs/api/index.html">Java
JDK 1.3 Documentation</jump></li>
</ul>
</s2>
<s2 title="Tutorials/Articles">
<ul>
- <li><jump
href="http://www.ibiblio.org/xml/books/bible/updates/15.html">Elliotte Rusty
Harold: Chapter 15 on xsl:fo from his excellent xml book</jump></li>
+ <li><jump
href="http://www.ibiblio.org/xml/books/bible2/chapters/ch18.html">Elliotte
Rusty Harold: Chapter 18 on xsl:fo from his excellent book XML Bible, Second
Edition</jump></li>
<li><jump
href="http://www.sun.com/software/xml/developers/slides-dtd/">Paul Sandoz:
Using formatting objects with the slides dtd</jump></li>
<li><jump
href="http://www.xml.com/pub/a/2001/01/17/xsl-fo/index.html">J. David
Eisenberg: Using XSL Formatting Objects</jump></li>
<li><jump
href="http://zvon.org/xxl/xslfoReference/Output/index.html">Miloslav Nic: XSL
FO reference</jump></li>
@@ -37,4 +46,6 @@
</s2>
</s1>
+ </body>
+</document>
1.11 +5 -9 xml-site/sources/fop/running.xml
Index: running.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/running.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- running.xml 2001/06/15 12:03:04 1.10
+++ running.xml 2001/12/03 10:08:54 1.11
@@ -6,7 +6,7 @@
<s1 title="Running FOP">
<s2 title="Prerequisites">
<p>Following software must be installed:</p>
- <p>a) Java 1.1.x or later (If you want to use the previewer (option
-awt), you need Swing or Java 2)</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:
@@ -33,16 +33,14 @@
-x dump configuration settings<br/>
-q quiet mode<br/>
-c cfg.xml use additional configuration file cfg.xml<br/>
- -l lang the language to use for user information<br/>
- </source>
+ -l lang the language to use for user information<br/></source>
</p>
<p>[INPUT]<br/>
<source>
infile xsl:fo input file (the same as the next)<br/>
-fo infile xsl:fo input file<br/>
-xml infile xml input file, must be used together with -xsl<br/>
- -xsl stylesheet xslt stylesheet<br/>
- </source>
+ -xsl stylesheet xslt stylesheet<br/></source>
</p>
<p>[OUTPUT]<br/>
@@ -54,8 +52,7 @@
-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/>
-print input file will be rendered and sent to the
printer<br/>
- see options with "-print help"<br/>
- </source>
+ see options with "-print help"<br/></source>
</p>
<p>[Examples]<br/>
@@ -65,8 +62,7 @@
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 -awt<br/></source>
</p>
</s2>
1.2 +86 -3 xml-site/sources/fop/svg.xml
Index: svg.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/svg.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- svg.xml 2001/06/15 12:03:05 1.1
+++ svg.xml 2001/12/03 10:08:54 1.2
@@ -2,6 +2,16 @@
<!-- SVG in FOP -->
+<document>
+ <header>
+ <title>SVG</title>
+ <subtitle>Embedding SVG in FOP</subtitle>
+ <authors>
+ </authors>
+ </header>
+
+ <body>
+
<s1 title="SVG in FOP">
<s2 title="Introduction">
<p>
@@ -30,16 +40,89 @@
This will output the svg document as "document.pdf" containing a PDF
rendering of
the SVG file.
</p>
+ <p>
+It is also possible to specify the width and/or height of the PDF document
on the command line with -w and -h or if you are using the transcoder api you
can use the transcoding hints.
+ </p>
+ <p>
+Currently the SVG image is drawn at the SVG document size and simply scaled
in PDF to the new size. So the result may not be the best possible. For example
if you have any images or effects it will draw them at the original resolution
of the svg document. When this is viewed in the pdf it will have an incorrect
resolution for the size of the pdf.
+</p>
<p>
-It is also possible to specify the width and/or height of the PDF document.
-Currently the SVG image is simply scaled in PDF so the result my not be the
best possible.
+The size of the pdf file will also remain the same regardless of what size
the page is.
</p>
<p>
For more information see <jump
href="http://xml.apache.org/batik/">Batik</jump> for
-how transocders work.
+how transcoders work.
</p>
</s2>
+
+ <s2 title="Important Notes">
+ <p>
+The svg is inserted into PDF by using PDF commands to draw and fill
+lines and curves. This means that the graphical objects created with
+this remain as vector graphics.
+ </p>
+ <p>
+There are a number of SVG things that cannot be converted directly into
+PDF. Parts of the graphic such as effects, patterns and images are inserted
+into the PDF as a raster graphic. The resolution of this graphic may not
+be ideal depending on the FOP dpi (72dpi) and the scaling for that graphic.
+This needs to be improved.
+ </p>
+ <p>
+Another important note is that text is converted and drawn as a
+set of shapes by batik. This means that a typical character will
+have about 10 curves (each curve consists of at least 20 characters).
+This can make the pdf files large and when the pdf is viewed the
+viewer does not normally draw those fine curves very well (turning on
+Smooth Line Art in the Acrobat preferences will fix this).
+If the text is inserted into the PDF using the inbuilt text commands
+for PDF it will use a single character.
+ </p>
+ <p>
+It is possible to make sure that all text is drawn into PDF using the
+PDF text commands by adding the following to the user config:
+<source><![CDATA[<entry>
+ <key>strokeSVGText</key>
+ <value>false</value>
+</entry>]]></source>
+ </p>
+ <p>
+The drawback from this is that all text will be confined to text that is
+possible for PDF fonts (including embedded fonts) and implemented with
+this workaround. The fonts available are the standard pdf fonts and any
+fonts that you have embedded using FOP. The font sizes will be rounded
+to an integer value. In future this will be improved.
+ </p>
+ </s2>
+ <s2 title="Classes">
+ <p>
+These are the relevant classes, found in the package org.apache.fop.svg :
+ </p>
+ <p>
+<ul>
+<li><em>PDFGraphics2D</em>
+<br/>
+used for drawing onto a Graphics2D into an existing pdf document, used
+internally to draw the svg.
+</li>
+<li><em>PDFDocumentGraphics2D</em>
+<br/>
+used to create a pdf document and inherits from PDFGraphics2D to do the
+rest of the drawing. Used by the transcoder to create a standalone pdf
+document from an svg. Can be used independantly the same as any Graphics2D.
+</li>
+<li><em>PDFTranscoder</em>
+<br/>
+used to transcode an svg document into a standalone pdf, via
+PDFDocumentGraphics2D.
+</li>
+</ul>
+ </p>
+
+ </s2>
</s1>
+ </body>
+</document>
1.2 +11 -1 xml-site/sources/fop/testing.xml
Index: testing.xml
===================================================================
RCS file: /home/cvs/xml-site/sources/fop/testing.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- testing.xml 2001/06/15 12:03:05 1.1
+++ testing.xml 2001/12/03 10:08:54 1.2
@@ -3,7 +3,7 @@
<!-- Testing FOP -->
<s1 title="Testing FOP">
- <s2 title="">
+ <s2 title="Running and Using Tests">
<p>
Testing is an important part of getting FOP to operate correctly and conform
to the
necessary standards.
@@ -17,6 +17,16 @@
To setup the testing the developer must place a reference fop.jar in the
"<cvs_repository>/test/reference/" directory. This jar will be dynamically
loaded to create the reference output.
+ </p>
+ </s2>
+
+ <s2 title="W3C TestSuite">
+ <p>
+The testing is set up so that you can download the testsuite from
+<jump
href="http://www.w3.org/Style/XSL/TestSuite/">http://www.w3.org/Style/XSL/TestSuite/</jump>,
+unzip the file into the base directory of FOP.
+Then you can uncomment the lines in the build.xml file in the test target
and it
+will run through all the tests in the testsuite distribution.
</p>
</s2>
1.1 xml-site/sources/fop/document.jpg
<<Binary file>>
1.1 xml-site/sources/fop/layout.jpg
<<Binary file>>
1.1 xml-site/sources/fop/title.jpg
<<Binary file>>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]