apache.org > XML Federation > xmlgraphics.apache.org

Ant task

FOP provides an Ant task for automating the document build process.

Description

The FOP Ant task will convert XSL-FO documents to PDF/PS/PCL/MIF/RTF output (see Output formats for available formats).

To call FOP tasks within Ant, first add a FOP task definition to your Ant build file. One method of defining the task is as follows:

<property name="fop.dir" value="....path to your FOP jar files..."/>

<taskdef name="fop" 
         classname="org.apache.fop.tools.anttasks.Fop">
         <classpath>
            <pathelement location="${fop.dir}\fop.jar"/>
            <pathelement location="${fop.dir}\avalon.jar"/>
            <pathelement location="${fop.dir}\batik.jar"/>
         </classpath>
</taskdef>
	

Then create FOP tasks within your Ant build file, using the FOP task parameters listed below.

Parameters for FOP Ant task

Parameters specified as attributes
Attribute Description Required
fofile XSL-FO file to be rendered Yes, if no fileset nested element is used
outfile Output filename Yes, when fofile is used. (This attribute is not valid for filesets.)
format Possible output formats:
application/pdf
application/postscript
application/vnd.mif
application/rtf
application/vnd.hp-PCL
text/plain
text/xml
No, defaults to application/pdf
outdir Output directory Required if a fileset is used to specify the files to render; optional for fofile. (Can alternatively specify the full path in the fofile value.)
force Recreate target files, even if they are newer than their corresponding source files. Note: This attribute is available in post-0.20.5 versions (0.20.x nightly build and 1.0dev) only; target files are always generated (i.e., force=true) in 0.20.5 release. No, default is false
basedir Base directory to resolve relative references (e.g., graphics files) within the FO document. No, for single FO File entry, default is to use the location of that FO file.
relativebase For fileset usage only. A value of true specifies using the location of each .fo file as the base directory for resolving relative file references located within that .fo file. A value of false specifies using the value of basedir for all files within the fileset, or just the current working directory if basedir is not specified. No, default is false.
userconfig User configuration file (same as the FOP "-c" command line option) No
messagelevel Logging level
Possible values: error, warn, info, verbose, debug
No, defaults to verbose
logFiles Controls whether the names of the files that are processed are logged (true) or not (false) No, default is true

Parameters specified as nested elements
Attribute Description Required
fileset FileSets are used to specify multiple XSL-FO files to be rendered. Yes, if no fofile attribute is supplied

Examples

The following example converts a single XSL-FO file to a PDF document:

<target name="generate-pdf" description="Generates a single PDF file">
   <fop format="application/pdf" 
        fofile="c:\working\foDirectory\foDocument.fo"
        outfile="c:\working\pdfDirectory\pdfDocument.pdf" />
</target>
    

This example converts all XSL-FO files within an entire directory to PostScript:

<target name="generate-multiple-ps" 
        description="Generates multiple PostScript files">
   <fop format="application/postscript" 
        outdir="${build.dir}" messagelevel="debug">
        <fileset dir="${fo.examples.dir}">
           <include name="*.fo"/>
        </fileset>
   </fop>
</target>