Thanks for the ant tip Eric. The following build.xml does the trick
for the fop part of my process. I notice that the process is much
faster: 1 minute 45 seconds for 52 pdf documents. Before it was
taking anywhere from 8 to 11 minutes.
Here is my build.xml file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="MyTask" basedir="." default="generate-multiple-pdf">
<property name="fop.home" value="/Applications/fop-0.94"/>
<property name="build.dir" value="pdf_files"/>
<property name="source.dir" value="fo_files"/>
<taskdef name="fop"
classname="org.apache.fop.tools.anttasks.Fop">
<classpath>
<fileset dir="${fop.home}/lib">
<include name="*.jar"/>
</fileset>
<fileset dir="${fop.home}/build">
<include name="fop.jar"/>
<!--<include name="fop-hyph.jar" />-->
</fileset>
</classpath>
</taskdef>
<target name="generate-multiple-pdf"
description="Generates multiple PDF files">
<fop format="application/pdf"
outdir="${build.dir}" messagelevel="debug">
<fileset dir="${source.dir}">
<include name="*.fo"/>
</fileset>
</fop>
</target>
</project>
I have not studied how to include the XSLT transformation. Here is
how it would go:
source XML document ----xslt transform via saxon (xslt 2.0) ---> 50
+ .fo documents ---fop--->50+ pdf documents.
The xslt automatically produces the 50 fo docs via <xsl:result-
document>. Would all this go into one build.xml? If so, would I just
call the xslt task first then call the "generate_multiple-pdf" task?
I am not sure that I need to bundle this all together. But it might
make my life easier.
Thanks again,
Terry
On Jan 3, 2008, at 5:38 PM, Eric Vought wrote:
If you are doing that much formatting, you may really want to check
out using ant for your build process, especially if doing multiple
output formats. I use this on Mac OS X and have no problem with
background running or anything else. My rule for PDF formatting is
just:
<target name="pdf" depends="-fo" description="Produce the PDF">
<fop format="application/pdf" basedir="${formatdir}"
fofile="${formatdir}/${basename}.fo"
outfile="${formatdir}/${basename}.pdf"/>
</target>
It is easy to adapt this to use a glob rule to build a list of
files to format and I also have my process automatically validate
DocBook inputs, produce single file and chunked HTML, ODF, convert
graphics files from SVG as necessary, automatically check dates to
only format what is needed, zip the formatted files and graphics
for distribution, clean up the working directories, and even do
some dependency tracking on what versions of DocBook, the XSLT
stylesheets, fop and other libraries I am using for a particular
document so I don't have trouble when I check out an old one from
version control. I have a template build file I include for each
project and then customize. It took me a good bit of work to set up
the environment but has been very easy to maintain.
This is not a huge matter. More on the line of an annoyance. And I
may need to take this question to a java list rather than this
list. If so, just point me in the right direction.
At any rate, I have an XSLT stylesheet that produces 50+ separate
fo documents. I then run the shell script below to batch produce
the pdf documents:
#!/bin/sh
for foo in *.fo
do
state=`basename $foo .fo`
/Applications/fop-0.94/fop -fo $foo -pdf ../pdf_files/$state.pdf
done
When I run this script on my Mac (OS X 10.4.11, java version
"1.5.0_13" fop-0.94), org.apache.fop.cli.main takes control of the
desktop, stopping whatever it is I am doing for about 5 seconds. I
gain control again for about 5 seconds until fop pumps out another
pdf document. I basically have to step away from the computer for
the 8 minutes that the batch process takes. Adding & and wait to
the main line of the script does not seem to work:
/Applications/fop-0.94/fop -fo $foo -pdf ../pdf_files/$state.pdf &
wait
done
The first script above on Ubuntu linux runs in the background
without interrupting other running process.
Any simple solutions?
Terry Ofner
Sincerely,
Eric Vought
"Deserves Death? I daresay he does. Many who live deserve death.
Many who die deserve life. Can you give it to them, Frodo? Do not
be so quick to deal death in the name of justice. Even the very
wise cannot see all ends." -- Gandalf the Grey
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]