У меня есть следующий файл ant build.xml для генерации pdf с библиотекой apache xsl-fo и для просмотра выходных данных с помощью приложения okular (в Linux)
<project name="pfd-generator" default="generate-pdf" basedir=".">
<property name="fop.home" value="/home/user/testpdf"/>
<property name="doc.type" value="${doctype}" />
<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="clean">
<delete includeemptydirs="true">
<fileset dir="docs" includes="**/*"/>
</delete>
</target>
<target name="generate-pdf" description="Generates a single PDF file">
<fop format="application/pdf"
xmlfile="./template_filled.xml"
xsltfile="./templates/template_${doctype}.xsl"
outdir="./docs"
basedir="./templates"
messagelevel="debug"
outfile="mypdf_${doctype}.pdf" />
</target>
<target name="run" depends="generate-pdf">
<exec executable="okular">
<arg value="./docs/mypdf_${doctype}.pdf"/>
</exec>
</target>
</project>
Когда я запускаю ant -Ddoctype=TYPE2 generate-pdf
, так как яу меня есть некоторые неопределенные переменные в моем файле xsl, pdf не собран, но муравей возвращает BUILD SUCCESSFUL, как прикреплено:
user@host:~/testpdf ant -Ddoctype=TYPE2 generate-pdf
Buildfile: /home/user/testpdf/build.xml
generate-pdf:
[fop] ERROR: 'file:/home/user/testpdf/templates/template_TYPE2.xsl: line 75: Variabile o parametro 'rowheight2' non definito.'
[fop] FATAL ERROR: 'file:/home/user/testpdf/templates/template_TYPE2.xsl: line 75: Variabile o parametro 'rowheight2' non definito.'
[fop] :file:/home/user/testpdf/templates/template_TYPE2.xsl: line 75: Variabile o parametro 'rowheight2' non definito.
[fop] [ERROR] Anttask - Error rendering xml/xslt files: /home/user/testpdf/template_filled.xml, /home/user/testpdf/templates/template_TYPE2.xsl <org.apache.fop.apps.FOPException: file:/home/user/testpdf/templates/template_TYPE2.xsl: line 75: Variabile o parametro 'rowheight2' non definito.
[...]
[fop] Caused by: org.apache.fop.apps.FOPException: file:/home/user/testpdf/templates/template_TYPE2.xsl: line 75: Variabile o parametro 'rowheight2' non definito.
[fop] javax.xml.transform.TransformerConfigurationException: file:/home/user/testpdf/templates/template_TYPE2.xsl: line 75: Variabile o parametro 'rowheight2' non definito.
[fop] at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:296)
[...]
[fop] ... 24 more
[fop]
[fop] xml: /home/user/testpdf/template_filled.xml, xslt: /home/user/testpdf/templates/template_TYPE2.xsl -> /home/user/testpdf/docs/mypdf_TYPE2.pdf
BUILD SUCCESSFUL
Total time: 1 second
, а также $?это 0, я могу получить СБОЙ ПОСТРОЕНИЯ, только если я запустил ant с несуществующей целью, то есть ant -Ddoctype=TYPE2 generate
Где я ошибаюсь?У меня есть скрипт, который открывает PDF, если они построены, но таким образом он открывается Okular также, если PDF не генерируется