Hope to see you there!
Hope to see you there!
Apache™ FOP provides an Ant task for automating the document build process.
The FOP Ant task will convert XSL-FO documents to PDF, PS, PCL etc. output (seeOutput 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:
<propertyname="fop.home"value="....path to your FOP HOME directory..."/><taskdefname="fop"classname="org.apache.fop.tools.anttasks.Fop"><classpath><filesetdir="${fop.home}/lib"><includename="*.jar"/></fileset><filesetdir="${fop.home}/build"><includename="fop.jar"/><includename="fop-hyph.jar"/></fileset></classpath></taskdef>Then create FOP tasks within your Ant build file, using the FOP task parameters listed below.
| Attribute | Description | Required |
|---|---|---|
| fofile | XSL-FO file to be rendered | Yes, if no fileset nested element is used |
| xmlfile | XML input file | Yes, if no fofile is specified |
| xsltfile | XSLT input file | Yes, if no fofile is specified |
| outfile | Output filename | Yes, when fofile is used. (This attribute is not valid for filesets.) |
| format | Possible output formats:application/X-fop-awt-previewapplication/X-fop-printapplication/X-fop-areatreeapplication/pdfapplication/postscriptapplication/mifapplication/rtf,text/richtext,text/rtfapplication/x-pcl,application/vnd.hp-PCLapplication/x-afp,application/vnd.ibm.modcaptext/plainimage/svg+xmlimage/gifimage/pngimage/tiff | No, defaults toapplication/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 isfalse |
| 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 oftrue specifies using the location of each .fo file as the base directory for resolving relative file references located within that .fo file. A value offalse 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 isfalse. |
| userconfig | User configuration file (same as the FOP "-c" command line option). | No |
| messagelevel | Logging level Possible values: error,warn,info,verbose,debug.Currently doesn't work in FOP Trunk!!! | No, defaults toverbose |
| logFiles | Controls whether the names of the files that are processed are logged (true) or not (false).Currently doesn't work in FOP Trunk!!! | No, default istrue |
| throwexceptions | Controls whether or not an exception is thrown if an error occurs during rendering. | Default istrue |
| Attribute | Description | Required |
|---|---|---|
| fileset | FileSets are used to specify multiple XSL-FO files to be rendered. | Yes, if no fofile attribute is supplied |
The following example converts a single XSL-FO file to a PDF document:
<targetname="generate-pdf"description="Generates a single PDF file"><fopformat="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:
<targetname="generate-multiple-ps"description="Generates multiple PostScript files"><fopformat="application/postscript"outdir="${build.dir}"messagelevel="debug"><filesetdir="${fo.examples.dir}"><includename="*.fo"/></fileset></fop></target>The following example transforms and converts a single XML and XSLT file to an AFP document:
<targetname="generate-afp-from-transform"description="Generates a single AFP file from an XSLT stylesheet"><fopformat="application/x-afp"xmlfile="c:\working\foDirectory\Document.xml"xsltfile="c:\working\foDirectory\Document.xslt"outfile="c:\working\afpDirectory\Document.afp"/></target>This example transforms and converts all XML files within an entire directory to PostScript:
<targetname="generate-multiple-ps-from-transform"description="Generates multiple PostScript files using an XSLT stylesheet"><fopformat="application/postscript"xsltfile="c:\working\foDirectory\Document.xslt"outdir="${build.dir}"messagelevel="debug"><filesetdir="${test.dir}"><includename="*.xml"/></fileset></fop></target>Copyright © 2025 The Apache Software Foundation, Licensed undertheApache License, Version 2.0.
Apache, Apache XML Graphics, Apache FOP, Apache Batik, the Apache logo, and theApache XML Graphics logos are trademarks ofThe ApacheSoftware Foundation. All other marks mentioned may be trademarks or registeredtrademarks of their respective owners.