<p>FOP is the world's first print formatter driven by XSL formatting
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. <jump href="output.html">Output formats</jump>
+ renders the resulting pages to a specified output. <link href="../output.html">Output formats</link>
currently supported are PDF, PCL, PS, SVG, XML (area tree representation),
Print, AWT, MIF and TXT.
The primary output target is PDF.
<p>The latest version of Fop is 0.20.4 and it supports the
<jump href="http://www.w3.org/TR/2001/REC-xsl-20011015/">XSL-FO Version 1.0
W3C Recommendation</jump>.
- You can <jump href="download.html">download</jump>
+ You can <link href="../download.html">download</link>
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
- <jump href="resources.html">resources</jump> section. Please be aware, that
+ <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
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
- <jump href="limitations.html">Limitations</jump> in what way this support is
+ in the section <link href="../implemented.html">Features</link> and in section
+ <link href="../limitations.html">Limitations</link> in what way this support is
limited.
</p>
<p>FOP is part of Apache's XML project. The homepage of FOP is
for how transcoders work.
</p>
</section>
-<!--
<section>
<title>Examples</title>
<p>
<tr>
<td>images</td>
<td><link href="svg/images.svg">images.svg</link></td>
- <td><link href="svg/images.png">images.png</link></td>
+ <td><!--link href="svg/images.png"-->images.png<!--/link--></td>
<td><link href="svg/images.pdf">images.pdf</link></td>
</tr>
<tr>
<td>svg linking</td>
<td><link href="svg/link.svg">link.svg</link></td>
- <td><link href="svg/link.png">link.png</link></td>
+ <td><!--link href="svg/link.png"-->link.png<!--/link--></td>
<td><link href="svg/link.pdf">link.pdf</link></td>
</tr>
<tr>
<td>gradients and patterns</td>
<td><link href="svg/paints.svg">paints.svg</link></td>
- <td><link href="svg/paints.png">paints.png</link></td>
+ <td><!--link href="svg/paints.png"-->paints.png<!--/link--></td>
<td><link href="svg/paints.pdf">paints.pdf</link></td>
</tr>
<tr>
<td>various text and effects on text</td>
<td><link href="svg/text.svg">text.svg</link></td>
- <td><link href="svg/text.png">text.png</link></td>
+ <td><!--link href="svg/text.png"-->text.png<!--/link--></td>
<td><link href="svg/text.pdf">text.pdf</link></td>
</tr>
<tr>
<td>transparent objects</td>
<td><link href="svg/transparency.svg">transparency.svg</link></td>
- <td><link href="svg/transparency.png">transparency.png</link></td>
+ <td><!--link href="svg/transparency.png"-->transparency.png<!--/link--></td>
<td><link href="svg/transparency.pdf">transparency.pdf</link></td>
</tr>
</table>
</table>
</p>
</section>
--->
<section>
<title>Important Notes</title>
<p>
<map:generator name="file" src="org.apache.cocoon.generation.FileGenerator" label="content"/>
<map:generator name="directory" src="org.apache.cocoon.generation.DirectoryGenerator" label="content"/>
<map:generator name="html" src="org.apache.cocoon.generation.HTMLGenerator" label="content"/>
- <map:generator name="libre" src="org.outerj.yer.use.cocoon.HierarchyGenerator" label="content"/>
+ <map:generator name="libre" src="org.apache.forrest.yer.use.cocoon.HierarchyGenerator" label="content"/>
<map:generator name="nekodtd" src="org.apache.forrest.components.generator.XNIConfigurableFileGenerator" label="content"/>
<!-- FIXME: Change this once better view handling is implemented -->
<map:generator name="file-nolabel" src="org.apache.cocoon.generation.FileGenerator"/>
</map:selectors>
-->
- <!--map:actions>
- <map:action logger="sitemap.action.request" name="request" src="org.apache.cocoon.acting.RequestParamAction"/>
- </map:actions-->
+ <map:actions>
+ <!-- <map:action logger="sitemap.action.request" name="request" src="org.apache.cocoon.acting.RequestParamAction"/> -->
+ <map:action logger="sitemap.action.resource-exists" name="resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction"/>
+ </map:actions>
<!--
The different pipeline implementations
<!-- =========================== Pipelines ================================= -->
<map:pipelines>
-
- <map:pipeline>
-
-<!-- ========================== FOP Additions ========================== -->
-
- <map:match pattern="*/svg/*.svg">
- <map:read src="content/xdocs/{1}/svg/{2}.svg" mime-type="image/svg"/>
- </map:match>
- <map:match pattern="*/svg/*.png">
- <map:generate src="content/xdocs/{1}/svg/{2}.svg"/>
- <map:serialize type="svg2png"/>
- </map:match>
- <map:match pattern="*/svg/*.pdf">
- <map:generate src="content/xdocs/{1}/svg/{2}.svg"/>
- <map:serialize type="svg2pdf"/>
- </map:match>
-
- <map:match pattern="*/fo/*.fo">
- <map:read src="content/xdocs/{1}/fo/{2}.fo" mime-type="text/xml"/>
- </map:match>
- <map:match pattern="*/fo/*.fo.pdf">
- <map:generate src="content/xdocs/{1}/fo/{2}.fo"/>
- <map:serialize type="fo2pdf"/>
- </map:match>
-
-<!-- ======================= End FOP Additions ======================== -->
-
- <map:match pattern="">
- <map:redirect-to uri="index.html"/>
- </map:match>
-
- <map:match pattern="apachestats">
- <map:generate type="html"
- src="http://www.apache.org/~rubys/stats/xml.apache.org/">
- <map:parameter name="xpath"
- value="/html/body//a[contains(@href,'.xml')]"/>
- </map:generate>
- <map:serialize type="xml"/>
- </map:match>
+
+ <!-- Pipeline that manages the internal URI space
+ For the external URI space manager, see the next pipeline. -->
+ <map:pipeline internal-only="true">
<map:match pattern="**tab-**.xml">
<map:generate src="content/xdocs/tabs.xml"/>
</map:call>
</map:match>
+ </map:pipeline>
+
+
+ <map:pipeline internal-only="false">
+
+<!-- ========================== FOP Additions ========================== -->
+
+ <map:match pattern="*/svg/*.svg">
+ <map:read src="content/xdocs/{1}/svg/{2}.svg" mime-type="image/svg"/>
+ </map:match>
+ <map:match pattern="*/svg/*.png">
+ <map:generate src="content/xdocs/{1}/svg/{2}.svg"/>
+ <map:serialize type="svg2png"/>
+ </map:match>
+ <map:match pattern="*/svg/*.pdf">
+ <map:generate src="content/xdocs/{1}/svg/{2}.svg"/>
+ <map:serialize type="svg2pdf"/>
+ </map:match>
+
+ <map:match pattern="*/fo/*.fo">
+ <map:read src="content/xdocs/{1}/fo/{2}.fo" mime-type="text/xml"/>
+ </map:match>
+ <map:match pattern="*/fo/*.fo.pdf">
+ <map:generate src="content/xdocs/{1}/fo/{2}.fo"/>
+ <map:serialize type="fo2pdf"/>
+ </map:match>
+
+<!-- ======================= End FOP Additions ======================== -->
+
+ <map:match pattern="">
+ <map:redirect-to uri="/{context:context}/index.html"/>
+ </map:match>
+
+ <map:match pattern="**">
+
+ <!-- if the file is present verbatim as content, give that to the user... -->
+ <map:act type="resource-exists">
+ <map:parameter name="url" value="content/{1}"/>
+ <map:read src="content/{../1}"/>
+ </map:act>
+
+ <!-- ... otherwise try to generate it using these rules. -->
+
+ <map:match pattern="apachestats">
+ <map:generate type="html"
+ src="http://www.apache.org/~rubys/stats/xml.apache.org/">
+ <map:parameter name="xpath"
+ value="/html/body//a[contains(@href,'.xml')]"/>
+ </map:generate>
+ <map:serialize type="xml"/>
+ </map:match>
+
+
<map:match pattern="*.html">
<map:aggregate element="site">
<map:part src="cocoon:/book-{1}.xml"/>
</map:call>
</map:match>
+ </map:match>
+
</map:pipeline>
</map:pipelines>