Submitted by: Jeremias Maerki <jeremias.maerki@outline.ch>
- (Options.java) fixed error where configfile was not being set (KLiddle)
- (Options.java) Added patch for loading config via Thread ContextClassLoader
-Submitted by: Davanum Srinivas
+Submitted by: Davanum Srinivas
- (StreamRenderer.java) This just moves the marker supporting code from before
Mark's patch into StreamRenderer. Not tested. (SCoffman)
instead of lines for borders to eliminate pixel errors (KLease)
- (awt.AWTRenderer.java) updated to new batik interface (KLiddle)
improvements to AWTRenderer (borders,backgrounds...)
-(Ralph LaChance/Andy Langowitz):
+(Ralph LaChance/Andy Langowitz):
[ AWTRenderers (-awt and -print options)
- eliminated 3D-effect in rendering background color
- borders now draw wider than 1 pixel if appropriate
- (TestConverter.java) fixes a problem relating to rendering options for xml
renderer (KLiddle)
-test/Testing:
+test/Testing:
- testing system, for use with the w3c defined testsuite.dtd including our
tests (KLiddle)
- added some simple test files with blocks (KLiddle)
- added: a bunch more properties on svg elements [Keiron Liddle]
- added: subset fonts embedding [Tore Engvig]
- added: Dutch hyphenation file [Reinout Verkerk]
-- added: Fop is now self-contained (all necessary jar files included) and
- a runnable jar (can be started with java -jar fop.jar) [Kelly Campbell]
+- added: Fop is now self-contained (all necessary jar files included) and
+ a runnable jar (can be started with java -jar fop.jar) [Kelly Campbell]
- added: support for border and padding shorthand properties [Karen Lease]
- added: use of property manager, new properties handling [Karen Lease]
- added: support for region-start, region-end [Arved Sandstrom]
- added: to migrate FOP to use the svg facilities from Batik in a special cvs branch [Keiron Liddle]
- added: enabling CID keyed truetype fonts; this gives support
for other encodings besides WinAnsiEncoding (eg japanese, chinese, arabic,
- iso-whatever, etc). Also makes font inclusion easier [Tore Engvig]
+ iso-whatever, etc). Also makes font inclusion easier [Tore Engvig]
- added: new font configuration [Fotis Jannidis]
- added: support for body-start and label-end in lists [Peter S. Housel]
- added: support for non-rotated arcs in svg [Keiron Liddle]
- added: break before and break after for table rows [Keiron Liddle]
-- added: error is reported if the number of columns the cells are using is
+- added: error is reported if the number of columns the cells are using is
different to the number of columns in the table [Keiron Liddle]
- updated: better handling of svg properties using xsl conversion to svgproperties [Keiron Liddle]
-- updated: the FOP build to fix the problems of the output location for the
- property code generation. updated ant.jar to version 1.3,
- added all needed jar files [Kelly Campbell]
-- changed: cleaned up renderWordArea. removed unused code.
- optimized object creation a little. [Kelly Campbell]
-- changed: refactored FontState so it doesn't do excessive font lookups per character [Kelly Campbell]
-- changed: Driver to make embedding Fop easier [Kelly Campbell]
+- updated: the FOP build to fix the problems of the output location for the
+ property code generation. updated ant.jar to version 1.3,
+ added all needed jar files [Kelly Campbell]
+- changed: cleaned up renderWordArea. removed unused code.
+ optimized object creation a little. [Kelly Campbell]
+- changed: refactored FontState so it doesn't do excessive font lookups per character [Kelly Campbell]
+- changed: Driver to make embedding Fop easier [Kelly Campbell]
- changed: apps package and commandline usage of Fop [Fotis Jannidis]
-- changed: adding a PrintRenderer for all print oriented renderers [Art Welch]
+- changed: adding a PrintRenderer for all print oriented renderers [Art Welch]
- fixed: problems if calculated leader-length < 0 [Fotis Jannidis]
- fixed: fixes problem with page break after last row of table body [Keiron Liddle]
- fixed: fixed svg placement bug, now puts the image at the correct offset [Keiron Liddle]
- fixed: broken support of jdk 1.1 [Art Welch]
- fixed: xalan 1 support works again, was broken after changes in apps [Kelly Campbell]
- fixed: properly adjusts the max height of table parts, when a footnote is added
- table will not overlap with the footnote [Keiron Liddle]
-- fixed: hexadecimal escape sequences in dutch hyphenation file converted
+ table will not overlap with the footnote [Keiron Liddle]
+- fixed: hexadecimal escape sequences in dutch hyphenation file converted
to iso-latin-1 [Carlos Villegas]
- fixed: the typos in the fonts example in the userconfig.xml
and optimized conversions to String in TTFReader and use of StringBuffer [Alain Fagot]
- fixed: put text-anchor in the correct place [Keiron Liddle]
- fixed: InstreamForeignObject checks for no more room in block area [Keiron Liddle]
- fixed: false border rendering for PCL renderer [Art Welch]
-- fixed: added default producer to fix a bug where the PDF producer is set to null in the default
+- fixed: added default producer to fix a bug where the PDF producer is set to null in the default
commandline usage. [Kelly Campbell]
-- fixed: Made logging go to the same stream (out) for pages and the newline after a page
+- fixed: Made logging go to the same stream (out) for pages and the newline after a page
sequence. The newline was previously going to the err stream. [Kelly Campbell]
docs/examples/fo/pdfoutline.fo [Kelly Campbell]
- added: some text rendering optimizations for PDF [Kelly Campbell]
- added: limited support for fo:wrapper [Kelly Campbell]
-- added: support in pdfrenderer for using TrueType fonts, and embedding of TrueType
+- added: support in pdfrenderer for using TrueType fonts, and embedding of TrueType
and Type1 fonts, and support for kerning [Tore Engvig]
- added: further support for complete font handling in pdf renderer [Alain Fagot]
- added: support for fo:footnote, fo:footnote-body [Keiron Liddle]
- fixed: leader didn't fill rest of line in table of contents [Fotis Jannidis]
- fixed: throws a more useful error if non-row inside table body [Keiron Liddle]
- fixed: duplicate ID bug for tables that flow over a page [Keiron Liddle]
-- fixed: empty flow bug [Kai Strackbein]
+- fixed: empty flow bug [Kai Strackbein]
- fixed: broken support of jdk 1.1 [Peter Housel]
Done since 0.15 release
- added: support for background color property, column breaks [Arved Sandstrom]
- added: support for xalan 2 in xslt task [Kelly Campbell]
-- added: support for the properties table-omit-header-at-break,
+- added: support for the properties table-omit-header-at-break,
table-omit-footer-at-break, number-columns-spanned (partly), orphans, widows (only for tables) [Keiron Liddle]
- added: support for multi-column and column spanning (column-count, column-gap, span)[Arved Sandstrom]
- added: compression for pdf files, changed output format to OutputStream [Kelly Campbell]
- added: interim configuration package [Fotis Jannidis]
- added: FopImage class that uses JAI [Eric Schaeffer] and JAI compile target [Kelly Campbell]
- added: support for rule-style [Fotis Jannidis]
-- added: support for fo:table-header, fo:table-footer, and for the following properties
+- added: support for fo:table-header, fo:table-footer, and for the following properties
in tables: keep-with-next, keep-with-previous [Keiron Liddle]
- updated: svg stuff for the latest java bindings [Keiron Liddle]
- fixed: enhanced error messages for page layout (region names, master) [Norm Walsh]
table row going over the page [Kelly Campbell]
- fixed colspanning so that the cell state keeps track of the
width so far properly [Keiron Liddle]
-- fix to allow JDK 1.1 users to compile and use FOP [Mikko Honkala, Art Welch]
+- fix to allow JDK 1.1 users to compile and use FOP [Mikko Honkala, Art Welch]
- fix: removing duplicate character mappings [Dharamveer Salecha]
-- fix: NullPointerException in FopImageFactory [Kelly Campbell]
+- fix: NullPointerException in FopImageFactory [Kelly Campbell]
- fixed: space after's where not being removed if table row was being removed [Keiron Liddle]
- fixed problem with keep-with not storing the correct rows [Keiron Liddle]
- fixed: extra space after was left behind for rows going over a page [Keiron Liddle]
Done since 0.14 release
-- added region-name support, refactoring of region, PageSequence,
+- added region-name support, refactoring of region, PageSequence,
PageMasterReference, flow/static [Kelly Campbell, Arved Sandstrom]
- added CommandLine/Driver -d option to output stack traces [Kelly Campbell, Arved Sandstrom]
- added: a new package for image support and analysis [Pankaj Narula]
-- added better svg support (linear gradients, radial gradients, css style selectors,
- css colour names, patterns, path curves (except arcs), text tspan and tref, text whitespace
+- added better svg support (linear gradients, radial gradients, css style selectors,
+ css colour names, patterns, path curves (except arcs), text tspan and tref, text whitespace
handling, text outline and fill, switch, images (including external svg images)
references in external svg documents, svg elements (below top element), symbol element) [Keiron Liddle]
- added large test suite for svg [Keiron Liddle]
- added support for property textdecoration (only value 'underline') [Christian Geisert]
- added support for type 1 fonts [Jeremias Maerki,Alan Fagot]
- added support for compile target jdk 1.1 only [Art Welch]
-- added support for partial borders in block, block-container,
+- added support for partial borders in block, block-container,
table-row, table-column and table-cell [Corinna Hischke]
-- redesign of properties handling, support for computed, compound and shorthand properties,
+- redesign of properties handling, support for computed, compound and shorthand properties,
supporting docs [Karen Lease]
- redesign of font handling for AWTRenderer [Dorothea Wiarda]
- added: support for leader-alignment, leader-pattern-width, leader-pattern (dots,space) [Fotis Jannidis]
- fixed: broken buildFOTree [Marcus Holmberg]
- fixed: problems with borders and padding in tables [Corinna Hischke]
- fixed: XMLRenderer, unbalanced " in the produced output [Dorothea Wiarda]
-- fixed: renamed: inline-sequence -> inline, simple-link -> basic-link,
+- fixed: renamed: inline-sequence -> inline, simple-link -> basic-link,
white-space-treatment -> white-space-collapse [Fotis Jannidis]
- fixed: images were rendered only half size (Mikko Honkala)
-- fixed: pdf file in XalanCommandFile explicitly closed [Dharamveer Salecha]
-- fixed: lists containing list do not keep their indentation correctly
+- fixed: pdf file in XalanCommandFile explicitly closed [Dharamveer Salecha]
+- fixed: lists containing list do not keep their indentation correctly
over a page boundary [Dorothea Wiarda]
Done since 0.13 release
- added a MessageHandler [Fotis Jannidis]
- fixed table overflow bug [Jordan Naftolin]
- finally fixed postscript printing of generated PDF [Domagoj Cosic]
-- removed XTCommandLine from build.xml
-- removed PDFOutputHandler from build.xml
+- removed XTCommandLine from build.xml
+- removed PDFOutputHandler from build.xml
- added XalanCommandLine [Fotis Jannidis]
- added: fo:instream-foreign-object [Keiron Liddle]
- added: goto button in AWT viewer [Stanislav Gorkhover]
- updated: AWT viewer now works again and supports - with some restrictions - the new SVG support [Stanislav Gorkhover]
-Done since 0.12.1 release
-- using Ant to build Fop instead of make [Giacomo Pati]
-- borders, padding and absolute positioning [Jon Smirl]
-
-0.12.1 release
-to make the bug fix on XTCommandLine available to non developers
-basic support for padding-{top,left,bottom,right} on blocks.
-implemented simple-link (don't think it works, though)
-XTCommandLine now works again
-background color works on list-block
-list-blocks can now be in table-cell
-
-Done for 0.12.0 release:
-
-Make sure Makefiles work
-Switch to using Status object as return from layout()
-Incorporate Eric Schaeffer's fix to tables in static-content
-Incorporate Kelly Campell's fixes to GifJpegImage
-Incorporate Eric Schaeffer's background colour implementation
- (actually used different approach with background colour as trait)
+Done since 0.12.1 release
+- using Ant to build Fop instead of make [Giacomo Pati]
+- borders, padding and absolute positioning [Jon Smirl]
+
+0.12.1 release
+to make the bug fix on XTCommandLine available to non developers
+basic support for padding-{top,left,bottom,right} on blocks.
+implemented simple-link (don't think it works, though)
+XTCommandLine now works again
+background color works on list-block
+list-blocks can now be in table-cell
+
+Done for 0.12.0 release:
+
+Make sure Makefiles work
+Switch to using Status object as return from layout()
+Incorporate Eric Schaeffer's fix to tables in static-content
+Incorporate Kelly Campell's fixes to GifJpegImage
+Incorporate Eric Schaeffer's background colour implementation
+ (actually used different approach with background colour as trait)
============================================================================
The Apache Software License, Version 1.1
============================================================================
-
+
Copyright (C) 1999-2002 The Apache Software Foundation. All rights reserved.
-
+
Redistribution and use in source and binary forms, with or without modifica-
tion, are permitted provided that the following conditions are met:
-
+
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
-
+
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
-
+
3. The end-user documentation included with the redistribution, if any, must
include the following acknowledgment: "This product includes software
developed by the Apache Software Foundation (http://www.apache.org/)."
Alternately, this acknowledgment may appear in the software itself, if
and wherever such third-party acknowledgments normally appear.
-
+
4. The names "FOP" and "Apache Software Foundation" must not be used to
endorse or promote products derived from this software without prior
written permission. For written permission, please contact
apache@apache.org.
-
+
5. Products derived from this software may not be called "Apache", nor may
"Apache" appear in their name, without prior written permission of the
Apache Software Foundation.
-
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
+
This software consists of voluntary contributions made by many individuals
on behalf of the Apache Software Foundation and was originally created by
- James Tauber <jtauber@jtauber.com>. For more information on the Apache
+ James Tauber <jtauber@jtauber.com>. For more information on the Apache
Software Foundation, please see <http://www.apache.org/>.
-
+
What is FOP?
FOP is the world's first print formatter driven by XSL formatting
objects. It is a Java application that reads a formatting object
- tree conforming to the XSL candidate release (21. November 2000) and
- then turns it into a PDF document or allows you to preview it
- directly on screen.
-
- FOP is part of Apache's XML project. The homepage of FOP is
- http:/xml.apache.org/fop
+ tree conforming to the XSL candidate release (21. November 2000) and
+ then turns it into a PDF document or allows you to preview it
+ directly on screen.
- HTML-Documentation can be found in the subdirectory xml-fop/docs/html-docs.
+ FOP is part of Apache's XML project. The homepage of FOP is
+ http:/xml.apache.org/fop
+
+ HTML-Documentation can be found in the subdirectory xml-fop/docs/html-docs.
The names of the committers of this project and what the developers are working on
can be found in the file STATUS in root.
Please report bugs to bugzilla at http://nagoya.apache.org/bugzilla/
- Discussion of Fop takes place in fop-dev@xml.apache.org (subscribe at
+ Discussion of Fop takes place in fop-dev@xml.apache.org (subscribe at
fop-dev-subscribe@xml.apache.org)
- Before you post any questions, please have a look at the FAQ at
+ Before you post any questions, please have a look at the FAQ at
http://www.owal.co.uk:8090/asf/servlet/asf/
-**** COMMITTERS ****
+**** COMMITTERS ****
-Arved Sandstrom (release coordinator)
-James Tauber (started it all and wrote most of the code)
+Arved Sandstrom (release coordinator)
+James Tauber (started it all and wrote most of the code)
Kelly Campbell
Steven Coffman
Tore Engvig
Christian Geisert
Stanislav Gorkhover
-Fotis Jannidis
+Fotis Jannidis
Karen Lease
Keiron Liddle
Jeremias Maerki
Jordan Naftolin
Joerg Pietschmann
-Eric Schaeffer
-Jon Smirl
+Eric Schaeffer
+Jon Smirl
Art Welch
Peter B. West
Building instructions
=====================
-First, make sure your current working directory is where this very file is
+First, make sure your current working directory is where this very file is
located. Then type
./build.sh (on unixes)
is used by fop maintainers to take care of everything in the Fop
project, no less and no more.
-Call the build script (see above) with the parameter "-projecthelp" to get a
+Call the build script (see above) with the parameter "-projecthelp" to get a
list of possible build targets.
============================================================================ -->
<project default="package" basedir=".">
- <!-- used to set values for testing etc. -->
+ <!-- used to set values for testing etc. -->
<!-- build-local.properties is not stored in CVS and overrides values from build.properties -->
<property file="build-local.properties"/>
<property file="build.properties"/>
-
+
<fileset dir="${basedir}" id="dist.bin">
<include name="conf/**"/>
<include name="docs/**"/>
<exclude name="build/**"/>
<exclude name="lib/**"/>
</fileset>
-
+
<fileset dir="${basedir}" id="dist.bin.lib">
<include name="lib/xercesImpl-2.2.1.jar"/>
<include name="lib/xalan-2.4.1.jar"/>
<include name="lib/jimi*"/>
<include name="lib/jfor*.jar"/>
</fileset>
-
+
<fileset dir="${basedir}" id="dist.src">
<exclude name="lib/classes/**"/>
<exclude name="lib/org/**"/>
<include name="fop.bat"/>
<include name="fop.sh"/>
</fileset>
-
+
<path id="libs-build-classpath">
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</path>
-
+
<path id="libs-run-classpath">
<fileset dir="lib">
<include name="*.jar"/>
<include name="fop.jar"/>
</fileset>
</path>
-
+
<path id="checkstylepath">
<fileset dir="lib">
<include name="checkstyle-all-*.jar"/>
</fileset>
</path>
-
+
<patternset id="exclude-jimi">
<exclude name="org/apache/fop/image/JimiImage.java"/>
</patternset>
-
+
<patternset id="exclude-jai">
<exclude name="org/apache/fop/image/JAIImage.java"/>
</patternset>
-
+
<patternset id="base-sources">
<include name="**/*.java"/>
<exclude name="**/*${ignore_this}"/>
<patternset refid="exclude-jimi"/>
<patternset refid="exclude-jai"/>
</patternset>
-
+
<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
<property name="version" value="1.0dev"/>
<filter token="version" value="${version}"/>
<property name="year" value="1999-2002"/>
-
+
<echo message="------------------- ${Name} ${version} [${year}] ----------------"/>
<echo message="See build.properties and build-local.properties for additional build settings"/>
-
+
<property name="build.compiler" value="classic"/>
<property name="debug" value="on"/>
<property name="optimize" value="off"/>
<property name="deprecation" value="on"/>
-
+
<property name="textfontencoding" value="WinAnsiEncoding"/>
-
+
<property name="src.dir" value="./src"/>
<property name="src.codegen" value="./src/codegen"/>
<property name="docs.dir" value="./docs"/>
<property name="viewer.resources.src.dir" value="./src/org/apache/fop/viewer/resources"/>
<property name="viewer.images.src.dir" value="./src/org/apache/fop/viewer/Images"/>
-
+
<property name="build.dir" value="./build"/>
<property name="build.src" value="./build/src"/>
<property name="build.gensrc" value="./build/gensrc"/>
<property name="foproperties.xml" value="${build.codegen}/foproperties.xml"/>
<property name="colorkw.xml" value="${build.codegen}/colorkw.xml"/>
<property name="allprops.xml" value="${build.codegen}/allprops.xml"/>
-
+
<property name="properties.xsl" value="${build.codegen}/properties.xsl"/>
<property name="propmap.xsl" value="${build.codegen}/propmap.xsl"/>
<property name="enumgen.xsl" value="${build.codegen}/enumgen.xsl"/>
<property name="fontfile.xsl" value="${build.codegen}/font-file.xsl"/>
<property name="t1fontfile.xsl" value="${build.codegen}/t1font-file.xsl"/>
<property name="ttffontfile.xsl" value="${build.codegen}/ttffontfile.xsl"/>
-
+
<property name="Courier.xml" value="${build.codegen}/Courier.xml"/>
<property name="Courier-Oblique.xml" value="${build.codegen}/CourierOblique.xml"/>
<property name="Courier-Bold.xml" value="${build.codegen}/CourierBold.xml"/>
<property name="Times-BoldItalic.xml" value="${build.codegen}/TimesBoldItalic.xml"/>
<property name="ZapfDingbats.xml" value="${build.codegen}/ZapfDingbats.xml"/>
<property name="Symbol.xml" value="${build.codegen}/Symbol.xml"/>
-
+
<property name="trax" value="TraxTransform.java"/>
<property name="xsltransform" value="XSLTransform.java"/>
-
+
<property name="tools.pkg" value="org/apache/fop/tools"/>
<property name="main.class" value="org.apache.fop.apps.Fop"/>
-
+
<filter filtersfile="${build.codegen}/filter" />
</target>
-
+
<target name="init-avail">
<available property="jimi.present" classname="com.sun.jimi.core.Jimi" classpathref="libs-build-classpath"/>
<available property="jai.present" classname="javax.media.jai.JAI" classpathref="libs-build-classpath"/>
<available property="jdk14.present" classname="java.lang.CharSequence"/>
</target>
-
+
<target name="init-filters-jdk13" depends="init-avail" unless="jdk14.present">
- <echo message="JDK 1.3 or earlier present."/>
- <copy file="src/codegen/jdk13.filter" toFile="build/src/codegen/filter"/>
+ <echo message="JDK 1.3 or earlier present."/>
+ <copy file="src/codegen/jdk13.filter" toFile="build/src/codegen/filter"/>
</target>
-
+
<target name="init-filters-jdk14" depends="init-avail" if="jdk14.present">
- <echo message="JDK 1.4 present."/>
- <copy file="src/codegen/jdk14.filter" toFile="build/src/codegen/filter"/>
+ <echo message="JDK 1.4 present."/>
+ <copy file="src/codegen/jdk14.filter" toFile="build/src/codegen/filter"/>
</target>
<!-- =================================================================== -->
<target name="usage">
<echo message="Use the -projecthelp option instead"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Prepares the build directory -->
<!-- =================================================================== -->
<mkdir dir="${build.gensrc}/${fonts.dir}"/>
<mkdir dir="${build.dest}/hyph"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Generate the source code -->
<!-- =================================================================== -->
<target name="codegen" depends="prepare" description="Generates the java files from the xml resources">
<!-- resetting codegen directory -->
<echo message="Resetting codegen directory"/>
-
+
<!-- copy codegen directory -->
<copy todir="${build.codegen}" filtering="on">
<fileset dir="${src.codegen}"/>
</copy>
-
+
<!-- generate the java files from xml resources -->
<echo message="Generating the java files from xml resources"/>
<dependset>
<srcfilelist dir="./" files="${propinc.xsl}"/>
<targetfilelist dir="./" files="${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this},${build.gensrc}/${replacestring}/fo/properties/FOPropertyMapping.java,${build.gensrc}/${replacestring}/fo/properties/foenums_${ignore_this}"/>
</dependset>
-
- <style in="${allprops.xml}" style="${genconst.xsl}"
+
+ <style in="${allprops.xml}" style="${genconst.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/Constants.java"/>
-
- <style in="${foproperties.xml}" style="${properties.xsl}"
+
+ <style in="${foproperties.xml}" style="${properties.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/fo_${ignore_this}"/>
- <style in="${foproperties.xml}" style="${propmap.xsl}"
+ <style in="${foproperties.xml}" style="${propmap.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/FOPropertyMapping.java"/>
- <style in="${foproperties.xml}" style="${enumgen.xsl}"
+ <style in="${foproperties.xml}" style="${enumgen.xsl}"
out="${build.gensrc}/${replacestring}/fo/properties/foenums_${ignore_this}"/>
- <style in="${encodings.xml}" style="${charlist.xsl}"
+ <style in="${encodings.xml}" style="${charlist.xsl}"
out="${build.gensrc}/${replacestring}/render/pdf/CodePointMapping.java"/>
<!--
<style basedir="src/codegen" includes="Helvetica*.xml,Times*.xml,Courier*.xml"
<param name="encoding" expression="${textfontencoding}"/>
</style>
-->
- <style in="${Courier.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Courier.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/Courier.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Courier-Oblique.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Courier-Oblique.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/CourierOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Courier-Bold.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Courier-Bold.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/CourierBold.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Courier-BoldOblique.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Courier-BoldOblique.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/CourierBoldOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Helvetica.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Helvetica.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/Helvetica.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Helvetica-Bold.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Helvetica-Bold.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/HelveticaBold.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Helvetica-Oblique.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Helvetica-Oblique.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/HelveticaOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Helvetica-BoldOblique.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Helvetica-BoldOblique.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/HelveticaBoldOblique.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Times-Roman.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Times-Roman.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/TimesRoman.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Times-Italic.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Times-Italic.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/TimesItalic.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Times-Bold.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Times-Bold.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/TimesBold.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Times-BoldItalic.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Times-BoldItalic.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/TimesBoldItalic.java">
<param name="encoding" expression="${textfontencoding}"/>
</style>
- <style in="${Symbol.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${Symbol.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/Symbol.java"/>
- <style in="${ZapfDingbats.xml}" style="${fontfile.xsl}"
- destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
+ <style in="${ZapfDingbats.xml}" style="${fontfile.xsl}"
+ destdir="${build.gensrc}/${replacestring}/render/pdf/fonts"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/ZapfDingbats.java"/>
-
- <style
- in="${Symbol.xml}" style="${fontfile.xsl}"
+
+ <style
+ in="${Symbol.xml}" style="${fontfile.xsl}"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/Symbol.java"/>
- <style
- in="${ZapfDingbats.xml}" style="${fontfile.xsl}"
+ <style
+ in="${ZapfDingbats.xml}" style="${fontfile.xsl}"
out="${build.gensrc}/${replacestring}/render/pdf/fonts/ZapfDingbats.java"/>
-
+
<!-- prepare JDK dependant files -->
<copy todir="${build.gensrc}" filtering="on">
<mapper type="glob" from="*.javat" to="*.java"/>
<include name="**/*.javat"/>
</fileset>
</copy>
-
+
</target>
-
+
<!-- =================================================================== -->
<!-- Compiles the source directory -->
<!-- =================================================================== -->
<echo message="Compiling the sources "/>
<!-- create directories -->
<mkdir dir="${build.dest}"/>
-
+
<mkdir dir="${viewer.resources.dest.dir}"/>
<copy todir="${viewer.resources.dest.dir}">
<fileset dir="${viewer.resources.src.dir}"/>
<copy todir="${viewer.images.dest.dir}">
<fileset dir="${viewer.images.src.dir}"/>
</copy>
-
+
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
<src path="${build.gensrc}"/>
<src path="${src.dir}"/>
<patternset refid="base-sources"/>
</javac>
</target>
-
+
<target name="compile-jimi" depends="compile-src" if="jimi.present">
<echo message="Jimi library is present. Fop installs jimi support."/>
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
<include name="**/${jimi}"/>
</javac>
</target>
-
+
<target name="compile-jai" depends="compile-src" if="jai.present">
<echo message="JAI library is present. Fop installs JAI support."/>
<javac destdir="${build.dest}" debug="${debug}" deprecation="${deprecation}" optimize="${optimize}">
</javac>
</target>
<target name="compile" depends="compile-src,compile-jimi,compile-jai" description="Compiles the source code"/>
-
+
<!-- =================================================================== -->
<!-- compiles hyphenation patterns -->
<!-- =================================================================== -->
<path refid="libs-build-classpath"/>
<pathelement location="${build.dir}/classes"/>
</path>
- <taskdef name="serHyph" classname="org.apache.fop.tools.anttasks.SerializeHyphPattern" classpathref="hyph-classpath"/>
- <serHyph includes="*.xml"
- sourceDir="${hyph.dir}"
- targetDir="${build.dest}/hyph"/>
+ <taskdef name="serHyph" classname="org.apache.fop.tools.anttasks.SerializeHyphPattern" classpathref="hyph-classpath"/>
+ <serHyph includes="*.xml"
+ sourceDir="${hyph.dir}"
+ targetDir="${build.dest}/hyph"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Creates the class package -->
<!-- =================================================================== -->
<map from="${basedir}${file.separator}lib${file.separator}" to=""/>
<map from="${basedir}${file.separator}build${file.separator}fop.jar" to=""/>
</pathconvert>
-
+
<jar jarfile="${build.dir}/${name}.jar" basedir="${build.dest}" includes="org/**,hyph/**">
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
</jar>
</target>
-
+
<target name="all" depends="package"/> <!-- "all" target for us Makefile converts ;-) -->
-
+
<target name="pdf-transcoder" depends="compile" description="Generates the jar for the pdf transcoder for Batik">
<echo message="Creating the jar file ${build.dir}/pdf-transcoder.jar"/>
-
+
<property name="pdf-transcoder.name" value="FOP PDF Transcoder"/>
<property name="pdf-transcoder.version" value="1.0beta2"/>
<tstamp>
<format property="ts" pattern="yyyyMMdd-HHmmss-z"/>
</tstamp>
-
+
<jar jarfile="${build.dir}/pdf-transcoder.jar">
<fileset dir="${build.dest}" includes="org/apache/fop/pdf/**"/>
<fileset dir="${build.dest}" includes="org/apache/fop/svg/**"/>
</manifest>
</jar>
</target>
-
+
<!-- =================================================================== -->
<!-- Testing -->
<!-- =================================================================== -->
refVersion="${ref-version}"/>
-->
</target>
-
+
<!-- =================================================================== -->
<!-- Prepares the docs -->
<!-- =================================================================== -->
<target name="prepare-docs" depends="init">
<mkdir dir="${build.docs}"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Creates the API documentation -->
<!-- =================================================================== -->
<target name="javadocs" depends="prepare" description="Generates javadocs">
<echo message="Producing the javadoc files "/>
<mkdir dir="${build.javadocs}"/>
-
- <javadoc
- packagenames="${packages}"
- destdir="${build.javadocs}"
- classpathref="libs-build-classpath"
- author="true"
- version="true"
- windowtitle="${Name} API"
- doctitle="${Name}"
- bottom="Copyright © ${year} Apache Software Foundation. All Rights Reserved."
- overview="${src.dir}/overview.html"
+
+ <javadoc
+ packagenames="${packages}"
+ destdir="${build.javadocs}"
+ classpathref="libs-build-classpath"
+ author="true"
+ version="true"
+ windowtitle="${Name} API"
+ doctitle="${Name}"
+ bottom="Copyright © ${year} Apache Software Foundation. All Rights Reserved."
+ overview="${src.dir}/overview.html"
failonerror="true">
<sourcepath>
<pathelement path="${src.dir}"/>
</sourcepath>
</javadoc>
</target>
-
+
<target name="html" depends="javadocs, htmldoc" description="Generates javadocs and documentation in html format"/>
-
+
<target name="htmldoc" depends="html-fop, html-design" description="Generates documentation in html format"/>
-
+
<target name="html-fop" depends="prepare">
<copy file="${xdocs}/fop.xml" tofile="${xdocs}/book.xml" filtering="on"/>
<java classname="${doc.generator}" fork="yes">
<arg line="targetDirectory=${docs} ${xdocs}/book.xml ${skins}"/>
</java>
</target>
-
+
<target name="html-design" depends="prepare, html-newdesign,
- html-altdesign, html-understanding"/>
-
+ html-altdesign, html-understanding"/>
+
<target name="html-newdesign" depends="prepare">
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/design/ docs/design/book.xml ${skins}"/>
</java>
</target>
-
+
<target name="html-altdesign" depends="prepare">
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/design/alt.design/ docs/design/alt.design/book.xml ${skins}"/>
</java>
</target>
-
+
<target name="html-understanding" depends="prepare">
<java classname="${doc.generator}" fork="yes">
<classpath refid="libs-build-classpath"/>
<arg line="targetDirectory=${docs}/design/understanding docs/design/understanding/book.xml ${skins}"/>
</java>
</target>
-
+
<target name="pdfdoc" depends="package" description="Generates the documentation in pdf format">
<copy file="${xdocs}/fop.xml" tofile="${xdocs}/book.xml" filtering="on"/>
<style in="${xdocs}/fop.xml" style="${xdocs}/xml2xml.xsl" out="${xdocs}/fop-doc.xml"/>
<style in="${xdocs}/fop-doc.xml" style="${xdocs}/xml2pdf.xsl" out="${xdocs}/fop.fo"/>
-
+
<java classname="org.apache.fop.apps.Fop" fork="yes">
<classpath refid="libs-run-classpath"/>
<arg line="-fo ${xdocs}/fop.fo -pdf ${xdocs}/fop.pdf"/>
</java>
</target>
-
+
<!-- =================================================================== -->
<!-- Checkstyle -->
<!-- =================================================================== -->
<available property="checkstyle.available" classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstylepath"/>
<fail message="Please put checkstyle-all-*.jar in the lib directory. Get it from http://checkstyle.sourceforge.net" unless="checkstyle.available"/>
<taskdef name="checkstyle" classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstylepath"/>
-
+
<checkstyle properties="checkstyle.cfg" failonviolation="false">
<fileset dir="${src.dir}" includes="org/apache/fop/**/*.java"/>
<formatter type="plain" toFile="${build.dir}/checkstyle_report.txt"/>
<available property="checkstyle.stylesheet.available" file="checkstyle-noframes.xsl"/>
<antcall target="checkstyle-html"/>
</target>
-
+
<target name="checkstyle-html" if="checkstyle.stylesheet.available">
<style in="${build.dir}/checkstyle_report.xml" out="${build.dir}/checkstyle_report.html" style="checkstyle-noframes.xsl"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Creates the distribution -->
<!-- =================================================================== -->
<target name="dist" depends="dist-src,dist-bin" description="Generates the distribution package"/>
-
+
<target name="dist-bin" depends="package">
<echo message="Building the binary distribution files (zip,tar)"/>
<mkdir dir="${dist.bin.result.dir}"/>
<mkdir dir="${dist.bin.result.dir}/build"/>
<copy todir="${dist.bin.result.dir}/build" file="build/fop.jar"/>
<chmod file="${dist.bin.result.dir}/fop.sh" perm="ugo+rx"/>
-
+
<zip zipfile="${Name}-${version}-bin.zip" basedir="${dist.bin.dir}" includes="**"/>
<tar tarfile="${Name}-${version}-bin.tar" basedir="${dist.bin.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}-bin.tar.gz" src="${Name}-${version}-bin.tar"/>
<delete file="${Name}-${version}-bin.tar"/>
</target>
-
+
<target name="dist-src" depends="package, javadocs">
<echo message="Building the source distribution files (zip,tar)"/>
<mkdir dir="${dist.src.result.dir}"/>
<copy todir="${dist.src.result.dir}/build" file="build/fop.jar"/>
<chmod file="${dist.src.result.dir}/build.sh" perm="ugo+rx"/>
<chmod file="${dist.src.result.dir}/fop.sh" perm="ugo+rx"/>
-
+
<zip zipfile="${Name}-${version}-src.zip" basedir="${dist.src.dir}" includes="**"/>
<tar tarfile="${Name}-${version}-src.tar" basedir="${dist.src.dir}" includes="**"/>
<gzip zipfile="${Name}-${version}-src.tar.gz" src="${Name}-${version}-src.tar"/>
<delete file="${Name}-${version}-src.tar"/>
</target>
-
+
<!-- =================================================================== -->
<!-- Generate example PDFs -->
<!-- =================================================================== -->
<target name="clean" depends="init" description="Cleans the build directory">
<delete dir="${build.dir}"/>
</target>
-
+
<target name="distclean" depends="clean" description="Cleans the distribution target directories">
<delete dir="${dist.src.dir}"/>
<delete dir="${dist.bin.dir}"/>
<?xml version="1.0"?>
-<!-- =======================================================================
+<!-- =======================================================================
Instructions for building the buildtools.jar:
Run "ant -f buildtools.xml" to build a new version of the buildtools jar
======================================================================= -->
-
+
<project default="buildtools" basedir=".">
<target name="init">
<target name="compile" depends="init,prepare.src">
<mkdir dir="${build.dest}"/>
<javac srcdir="${build.src}"
- destdir="${build.dest}"/>
-
+ destdir="${build.dest}"/>
+
</target>
<target name="buildtools" depends="clean,init,compile">
<echo message="Creating the jar file ${buildtools.jar}"/>
<jar jarfile="${buildtools.jar}"
- basedir="${build.dest}"
- includes="${tools}/**,${hyph}/**"/>
+ basedir="${build.dest}"
+ includes="${tools}/**,${hyph}/**"/>
</target>
<target name="prepare.src" depends="prepare.trax">
<copy todir="${build.src}">
<fileset dir="${src.dir}"
- includes="${tools}/**,${hyph}/**"
- excludes="${tools}/anttasks/Fop.java,${tools}/TestConverter.java,${tools}/AreaTreeBuilder.java,${hyph}/Hyphenator.java,**/${trax}"/>
+ includes="${tools}/**,${hyph}/**"
+ excludes="${tools}/anttasks/Fop.java,${tools}/TestConverter.java,${tools}/AreaTreeBuilder.java,${hyph}/Hyphenator.java,**/${trax}"/>
</copy>
</target>
<echo message="JAXP1.1 transforms is present. Installing TRaX support"/>
<copy todir="${build.src}">
<fileset dir="${src.dir}"
- includes="**/${trax}"/>
+ includes="**/${trax}"/>
</copy>
</target>
<include name="*.jar"/>
</fileset>
</path>
-
+
<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
<target name="prepare-src" depends="prepare">
<!-- copy src files -->
<copy todir="${build.src}">
- <fileset dir="${src.dir}"
+ <fileset dir="${src.dir}"
excludes="**/Makefile*, **/package.html"/>
</copy>
<copy todir="${build.dest}/">
<jar jarfile="${build.dir}/${name}.jar"
basedir="${build.dest}"
includes="**">
- <manifest>
+ <manifest>
<attribute name="Implementation-Title" value="${Name}"/>
<attribute name="Implementation-Version" value="${version}"/>
<attribute name="Implementation-Vendor" value="Apache Software Foundation (http://xml.apache.org/fop/)"/>
<?xml version="1.0" encoding="ISO-8859-1"?>
- <math xmlns="http://www.w3.org/1998/Math/MathML" mode="display">
- <mrow>
- <mo stretchy="false">{</mo>
- <munder>
- <mrow>
- <mover>
- <mrow>
- <mpadded width="0"/>
- <!--mpadded width="0">(</mpadded-->
- <!-- \mathstrut -ugly hack a la TeX -->
- <mi>a</mi>
- <mo>,</mo>
- <mo>...</mo>
- <mo>,</mo>
- <mi>a</mi>
- </mrow>
- <mover>
- <mo>︷</mo>
- <mrow>
- <mi>k</mi>
- <mtext> </mtext>
- <mi>a</mi>
- <mtext>'s</mtext>
- </mrow>
- </mover>
- </mover>
- <mo>,</mo>
- <mover>
- <mrow>
- <mpadded/>
- <!--mpadded width="0">(</mpadded-->
- <!-- \mathstrut -ugly hack a la TeX -->
- <mi>b</mi>
- <mo>,</mo>
- <mo>...</mo>
- <mo>,</mo>
- <mi>b</mi>
- </mrow>
- <mover>
- <mo>︷</mo>
- <mrow>
- <mi>ℓ</mi>
- <mtext> </mtext>
- <mi>b</mi>
- <mtext>'s</mtext>
- </mrow>
- </mover>
- </mover>
- </mrow>
- <munder>
- <mo>︸</mo>
- <mrow>
- <mi>k</mi>
- <mo>+</mo>
- <mi>ℓ</mi>
- <mtext> elements</mtext>
- </mrow>
- </munder>
- </munder>
- <mo stretchy="false">}</mo>
- </mrow>
- </math>
+ <math xmlns="http://www.w3.org/1998/Math/MathML" mode="display">
+ <mrow>
+ <mo stretchy="false">{</mo>
+ <munder>
+ <mrow>
+ <mover>
+ <mrow>
+ <mpadded width="0"/>
+ <!--mpadded width="0">(</mpadded-->
+ <!-- \mathstrut -ugly hack a la TeX -->
+ <mi>a</mi>
+ <mo>,</mo>
+ <mo>...</mo>
+ <mo>,</mo>
+ <mi>a</mi>
+ </mrow>
+ <mover>
+ <mo>︷</mo>
+ <mrow>
+ <mi>k</mi>
+ <mtext> </mtext>
+ <mi>a</mi>
+ <mtext>'s</mtext>
+ </mrow>
+ </mover>
+ </mover>
+ <mo>,</mo>
+ <mover>
+ <mrow>
+ <mpadded/>
+ <!--mpadded width="0">(</mpadded-->
+ <!-- \mathstrut -ugly hack a la TeX -->
+ <mi>b</mi>
+ <mo>,</mo>
+ <mo>...</mo>
+ <mo>,</mo>
+ <mi>b</mi>
+ </mrow>
+ <mover>
+ <mo>︷</mo>
+ <mrow>
+ <mi>ℓ</mi>
+ <mtext> </mtext>
+ <mi>b</mi>
+ <mtext>'s</mtext>
+ </mrow>
+ </mover>
+ </mover>
+ </mrow>
+ <munder>
+ <mo>︸</mo>
+ <mrow>
+ <mi>k</mi>
+ <mo>+</mo>
+ <mi>ℓ</mi>
+ <mtext> elements</mtext>
+ </mrow>
+ </munder>
+ </munder>
+ <mo stretchy="false">}</mo>
+ </mrow>
+ </math>
<include name="fop.jar"/>
</fileset>
</path>
-
+
<!-- =================================================================== -->
<!-- Initialization target -->
<!-- =================================================================== -->
<property name="main.class" value="org.apache.fop.plan.Main"/>
<property name="runtime.classpath" value="fop.jar xml-apis.jar xercesImpl-2.2.1.jar xalan-2.4.1.jar batik.jar"/>
-
+
</target>
<!-- =================================================================== -->
<target name="prepare-src" depends="prepare">
<!-- copy src files -->
<copy todir="${build.src}">
- <fileset dir="${src.dir}"
+ <fileset dir="${src.dir}"
excludes="**/Makefile*, **/package.html"/>
</copy>
<copy todir="${build.dest}/">
<jar jarfile="${build.dir}/${name}.jar"
basedir="${build.dest}"
includes="**">
- <manifest>
+ <manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${runtime.classpath}"/>
<attribute name="Implementation-Title" value="${Name}"/>
This directory contains two sample servlets that use FOP:
-- FopServlet can take a XSL:FO file or a XML+XSLT as parameters to create a PDF
+- FopServlet can take a XSL:FO file or a XML+XSLT as parameters to create a PDF
that is being shown in the browser.
-- FopPrintServlet has the same parameters but prints the generated document to
+- FopPrintServlet has the same parameters but prints the generated document to
the default printer instead of generating a PDF.
Creating the WAR file:
2. Run build.bat (on Windows) or build.sh (on Unix) to create the WAR file.
3. Put the WAR file in you favourite web container.
-Sample URLs:
+Sample URLs:
http://localhost:8080/fop/servlet/FopServlet?fo=readme.fo
http://localhost:8080/fop/servlet/FopPrintServlet?fo=readme.fo
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
- <servlet>
- <servlet-name>Fop</servlet-name>
- <servlet-class>FopServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>Fop</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <servlet>
- <servlet-name>FopPrint</servlet-name>
- <servlet-class>FopPrintServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>FopPrint</servlet-name>
- <url-pattern>/fopprint</url-pattern>
- </servlet-mapping>
+ <servlet>
+ <servlet-name>Fop</servlet-name>
+ <servlet-class>FopServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Fop</servlet-name>
+ <url-pattern>/</url-pattern>
+ </servlet-mapping>
+ <servlet>
+ <servlet-name>FopPrint</servlet-name>
+ <servlet-class>FopPrintServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>FopPrint</servlet-name>
+ <url-pattern>/fopprint</url-pattern>
+ </servlet-mapping>
</web-app>
design UML diagrams showing the Fop design
graphics some graphics used by the examples and test files
-examples a lot of xs:fo example files
+examples a lot of xs:fo example files
examples/fo some simple examples to get you started
examples/
pagination some simple and some not so simple examples how to use the
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match ="root">
- <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
-
- <!-- defines page layout -->
- <fo:layout-master-set>
-
- <fo:simple-page-master master-name="simple"
- page-height="29.7cm"
- page-width="21cm"
- margin-top="1.5cm"
- margin-bottom="1.5cm"
- margin-left="2.5cm"
- margin-right="2.5cm">
- <fo:region-body margin-top="1.5cm"/>
- <fo:region-before extent="1.5cm"/>
- <fo:region-after extent="1.5cm"/>
- </fo:simple-page-master>
- </fo:layout-master-set>
-
- <fo:page-sequence master-reference="simple">
- <fo:static-content flow-name="xsl-region-before">
- <fo:block text-align="end"
- font-size="10pt"
- font-family="serif"
- line-height="14pt" >
- xsl:fo short reference - p. <fo:page-number/>
- </fo:block>
- </fo:static-content>
-
- <fo:flow flow-name="xsl-region-body">
-
-
- <fo:block font-size="18pt"
- font-family="sans-serif"
+ <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+
+ <!-- defines page layout -->
+ <fo:layout-master-set>
+
+ <fo:simple-page-master master-name="simple"
+ page-height="29.7cm"
+ page-width="21cm"
+ margin-top="1.5cm"
+ margin-bottom="1.5cm"
+ margin-left="2.5cm"
+ margin-right="2.5cm">
+ <fo:region-body margin-top="1.5cm"/>
+ <fo:region-before extent="1.5cm"/>
+ <fo:region-after extent="1.5cm"/>
+ </fo:simple-page-master>
+ </fo:layout-master-set>
+
+ <fo:page-sequence master-reference="simple">
+ <fo:static-content flow-name="xsl-region-before">
+ <fo:block text-align="end"
+ font-size="10pt"
+ font-family="serif"
+ line-height="14pt" >
+ xsl:fo short reference - p. <fo:page-number/>
+ </fo:block>
+ </fo:static-content>
+
+ <fo:flow flow-name="xsl-region-body">
+
+
+ <fo:block font-size="18pt"
+ font-family="sans-serif"
line-height="24pt"
space-after.optimum="15pt"
background-color="blue"
<!-- generates table of contents and puts it into a table -->
- <fo:block font-size="10pt"
- font-family="sans-serif"
+ <fo:block font-size="10pt"
+ font-family="sans-serif"
line-height="10pt"
space-after.optimum="3pt"
font-weight="bold"
<fo:table space-after.optimum="15pt">
<fo:table-column column-width="1cm"/>
<fo:table-column column-width="15cm"/>
- <fo:table-body font-size="10pt"
+ <fo:table-body font-size="10pt"
font-family="sans-serif">
-
+
<xsl:for-each select="div0/head">
<fo:table-row line-height="12pt">
<fo:table-cell>
<fo:block text-align="end" >
- <xsl:number value="position()" format="1"/>)
+ <xsl:number value="position()" format="1"/>)
</fo:block>
</fo:table-cell>
<fo:table-cell>
</fo:table-body>
</fo:table>
- <xsl:apply-templates/>
- <fo:block font-size="10pt"
- font-family="sans-serif"
+ <xsl:apply-templates/>
+ <fo:block font-size="10pt"
+ font-family="sans-serif"
line-height="11pt"
space-before.optimum="2cm">
- The explanation of the flow objects is based (mostly verbatim) on the section
- 6.2 of the XSL W3C Candidate Recommendation 21 November 2000. More info at the beginning
+ The explanation of the flow objects is based (mostly verbatim) on the section
+ 6.2 of the XSL W3C Candidate Recommendation 21 November 2000. More info at the beginning
of the file xslfoRef.xml.
</fo:block>
- </fo:flow>
- </fo:page-sequence>
- </fo:root>
+ </fo:flow>
+ </fo:page-sequence>
+ </fo:root>
</xsl:template>
<xsl:template match ="div">
- <fo:block font-size="14pt"
- font-family="sans-serif"
+ <fo:block font-size="14pt"
+ font-family="sans-serif"
space-before.optimum="3pt"
space-after.optimum="3pt"
text-align="center"
padding-top="3pt"
>
- <xsl:apply-templates/>
+ <xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match ="div0/head">
- <fo:block font-size="16pt"
+ <fo:block font-size="16pt"
line-height="18pt"
text-align="center"
padding-top="3pt"
<xsl:template match ="div/fo">
- <fo:block font-size="13pt"
+ <fo:block font-size="13pt"
line-height="14pt"
text-align="start"
>
</xsl:template>
<xsl:template match ="explanation">
- <fo:block font-size="11pt"
- font-family="sans-serif"
+ <fo:block font-size="11pt"
+ font-family="sans-serif"
line-height="12pt"
text-align="start"
start-indent="0.5cm"
>
- <xsl:apply-templates/>
+ <xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match ="div/content">
- <fo:block font-size="10pt"
- font-family="Courier"
+ <fo:block font-size="10pt"
+ font-family="Courier"
start-indent="0.5cm"
line-height="11pt"
text-align="start"
</xsl:template>
<xsl:template match ="div/properties">
- <fo:block font-size="10pt"
- font-family="Courier"
+ <fo:block font-size="10pt"
+ font-family="Courier"
line-height="11pt"
text-align="start"
start-indent="0.5cm">
Properties:
</fo:block>
<fo:block space-after.optimum="3pt">
- <xsl:apply-templates/>
+ <xsl:apply-templates/>
</fo:block>
</xsl:template>
-<xsl:template match ="properties/property">
- <fo:block font-size="9pt"
- font-family="sans-serif"
+<xsl:template match ="properties/property">
+ <fo:block font-size="9pt"
+ font-family="sans-serif"
line-height="10pt"
text-align="start"
start-indent="1cm">
<xsl:template match ="div/property-def">
- <fo:block font-size="13pt"
+ <fo:block font-size="13pt"
line-height="14pt"
text-align="start"
>
<?xml version="1.0" encoding="UTF-8"?>
-<!--
-tbd: - internal linking
+<!--
+tbd: - internal linking
- one line explanation
- example
-please note: the short explanation of each fo is based (mostly verbatim) on the section 6.3 of
-the Extensible Stylesheet Language (XSL) Version 1.0 W3C Candidate Recommendation 21 November 2000.
+please note: the short explanation of each fo is based (mostly verbatim) on the section 6.3 of
+the Extensible Stylesheet Language (XSL) Version 1.0 W3C Candidate Recommendation 21 November 2000.
authors: Sharon Adler, Anders Berglund, Jeff Caruso, Stephen Deach
- Paul Grosso, Eduardo Gutentag, Alex Milowski, Scott Parnell,
+ Paul Grosso, Eduardo Gutentag, Alex Milowski, Scott Parnell,
Jeremy Richman, Steve Zilles
url: http://www.w3.org/TR/2000/CR-xsl-20001121/
</properties>
</div><div id="fo:bidi-override">
<fo>fo:bidi-override</fo>
-<explanation> overrides the default Unicode-bidirectionality algorithm direction for different
+<explanation> overrides the default Unicode-bidirectionality algorithm direction for different
(or nested) inline scripts in mixed-language documents</explanation>
<content>(#PCDATA|%inline;|%block;)*</content>
<properties>
#
# Shell script to run FOP, adapted from the Jakarta-Ant project.
-if [ -f $HOME/.foprc ] ; then
+if [ -f $HOME/.foprc ] ; then
. $HOME/.foprc
fi
if [ -z "$FOP_HOME" ] ; then
# try to find FOP
- if [ -d /opt/fop ] ; then
+ if [ -d /opt/fop ] ; then
FOP_HOME=/opt/fop
fi
- if [ -d ${HOME}/opt/fop ] ; then
+ if [ -d ${HOME}/opt/fop ] ; then
FOP_HOME=${HOME}/opt/fop
fi
## resolve links - $0 may be a link to fop's home
PRG=$0
progname=`basename $0`
-
+
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '.*/.*' > /dev/null; then
- PRG="$link"
+ PRG="$link"
else
- PRG="`dirname $PRG`/$link"
+ PRG="`dirname $PRG`/$link"
fi
done
-
+
FOP_HOME=`dirname "$PRG"`
fi
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
-if [ -z "$JAVACMD" ] ; then
+if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=java
fi
fi
-
+
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly."
echo " We cannot execute $JAVACMD"
##############
# Prints out a summary of Forrest settings for this project
-#forrest.echo=true
+#forrest.echo=true
# Project name (used to name .war file)
project.name=fop-project
<changes>
<release version="?" date="2002">
<action context="build" dev="JM" type="update">
- Updated to Xerces 2.2.1 and Xalan 2.4.1. Updated all the related files
- and made sure all contrib builds work again. Removed necessity for a
+ Updated to Xerces 2.2.1 and Xalan 2.4.1. Updated all the related files
+ and made sure all contrib builds work again. Removed necessity for a
buildtools.jar.
</action>
<action context="code" dev="KL" type="fix" fixes-bug="14290">
- Correct ordering of loca table in embedded true type fonts.
+ Correct ordering of loca table in embedded true type fonts.
Fix taken over from maintenance branch.
</action>
<action context="docs" dev="KLL" type="update"
<action context="code" dev="KLL" type="update">
Add id areas to page when area added.
When the layout managers add an area to the page it can also add the id
- information.
+ information.
</action>
<action context="code" dev="KLL" type="update">
Resolve id references on other pages, extensions.
Added a RunLengthEncode filter for the PostScript renderer.
</action>
<action dev="JM" type="update" context="code">
- Replaced the PostScript filters with the refactored ones from the maintenance
+ Replaced the PostScript filters with the refactored ones from the maintenance
branch.
</action>
<action dev="JM" type="update" context="code">
- First batch of changes in preparation for adoption of Avalon patterns.
+ First batch of changes in preparation for adoption of Avalon patterns.
Only changes on logging for now. Mostly usage of LogEnabled contract interface.
</action>
<action dev="JM" type="update" context="build">
separated the specific PDFRender functionality from the CTM class
and created a small utility class for the renderer to use
</action>
- <action dev="KLL" type="update" context="code">
+ <action dev="KLL" type="update" context="code">
FontState only used for calculations,
stores font name and size on area tree
</action>
- <action dev="KLL" type="update" context="code">
+ <action dev="KLL" type="update" context="code">
Improved PDFTextPainter to handle different text better
</action>
- <action dev="KLL" type="update" context="code">
+ <action dev="KLL" type="update" context="code">
Applied root element viewBox transform for svg to pdf transcoder
</action>
- <action dev="KLL" type="update" context="code">
+ <action dev="KLL" type="update" context="code">
image test for formats, viewport and scaling
</action>
- <action dev="KLL" type="add" context="code">
+ <action dev="KLL" type="add" context="code">
added various SVG to PDF tests for trancoder
and including in fo
</action>
- <action dev="KLL" type="update" context="code">
+ <action dev="KLL" type="update" context="code">
Implemented viewport and scaling for images
</action>
- <action dev="KLL" type="update" context="code">
+ <action dev="KLL" type="update" context="code">
Implemented viewport and scaling for instream svg
</action>
<action dev="KLL" type="update" context="code">
</action>
<action dev="KLL" type="update" context="code">
Added handlers for xml in renderer
- </action>
+ </action>
<action dev="KLL" type="update" context="code">
svg now in an xml handler, FOP can be used without batik
</action>