xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Terry Ofner <tof...@comcast.net>
Subject Re: How to put batch process into background on Mac OS
Date Fri, 04 Jan 2008 21:44:18 GMT
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"
     <fileset dir="${fop.home}/lib">
       <include name="*.jar"/>
     <fileset dir="${fop.home}/build">
       <include name="fop.jar"/>
       <!--<include name="fop-hyph.jar" />-->
<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"/>

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,


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: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

View raw message