Я знаю, муравей уже не в моде, но мы до сих пор его используем.Я бы хотел вызвать задачу setheaderfooter
из Ant.К сожалению, у меня возникают проблемы при получении.
Сначала я проверил, что он работает из командной строки, выполнив это успешно:
C:\tools\sejda-console-3.2.66-bin\sejda-console-3.2.66\bin>sejda-console.bat setheaderfooter -f c:\Temp\test.pdf -o c:\temp\out.pdf -s all -y top -x center -t Courier-Bold -l "This publication is under embargo until 3 December 2018, 11:00 UTC" -c #ff0000 --overwrite
Затем я попытался заставить его работатьиз цели Ant, например, так:
<target name="Watermark">
<java fork="yes" classname="org.sejda.cli.Main" maxmemory="1024m">
<arg value="-Dfile.encoding=UTF8"/>
<arg value="-Dapp.name="sejda-console""/>
<arg value="-Dapp.repo="${sejda.path}/lib""/>
<arg value="-Dapp.home="${sejda.path}""/>
<arg value="-Dbasedir="${sejda.path}""/>
<arg value="setheaderfooter"/>
<arg value="-f c:\Temp\test.pdf"/>
<arg value="-o c:\temp\out.pdf"/>
<arg value="-s all"/>
<arg value="-y top"/>
<arg value="-x center"/>
<arg value="-t Courier-Bold"/>
<arg value="-l 'This publication is under embargo until 3 December 2018, 11:00 UTC'"/>
<arg value="-c #ff0000"/>
<arg value="--overwrite"/>
<classpath>
<pathelement path="${sejda.path}/etc"/>
<pathelement location="${sejda.path}/lib/sejda-conversion-3.2.66.jar"/>
<pathelement location="${sejda.path}/lib/sejda-core-3.2.66.jar"/>
<pathelement location="${sejda.path}/lib/validation-api-1.0.0.GA.jar"/>
<pathelement location="${sejda.path}/lib/hibernate-validator-4.2.0.Final.jar"/>
<pathelement location="${sejda.path}/lib/sejda-model-3.2.66.jar"/>
<pathelement location="${sejda.path}/lib/sejda-sambox-3.2.66.jar"/>
<pathelement location="${sejda.path}/lib/sejda-fonts-3.2.66.jar"/>
<pathelement location="${sejda.path}/lib/sejda-image-writers-3.2.66.jar"/>
<pathelement location="${sejda.path}/lib/imageio-core-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/common-lang-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/common-io-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/common-image-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/imageio-metadata-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/imageio-tiff-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/imageio-jpeg-3.3.1.jar"/>
<pathelement location="${sejda.path}/lib/imgscalr-lib-4.2.jar"/>
<pathelement location="${sejda.path}/lib/bcmail-jdk15on-1.56.jar"/>
<pathelement location="${sejda.path}/lib/bcpkix-jdk15on-1.56.jar"/>
<pathelement location="${sejda.path}/lib/bcprov-jdk15on-1.56.jar"/>
<pathelement location="${sejda.path}/lib/metadata-extractor-2.10.1.jar"/>
<pathelement location="${sejda.path}/lib/xmpcore-5.1.3.jar"/>
<pathelement location="${sejda.path}/lib/commons-csv-1.5.jar"/>
<pathelement location="${sejda.path}/lib/jcl-over-slf4j-1.7.25.jar"/>
<pathelement location="${sejda.path}/lib/jul-to-slf4j-1.7.25.jar"/>
<pathelement location="${sejda.path}/lib/jewelcli-0.8.2.jar"/>
<pathelement location="${sejda.path}/lib/commons-lang3-3.5.jar"/>
<pathelement location="${sejda.path}/lib/commons-io-2.6.jar"/>
<pathelement location="${sejda.path}/lib/logback-classic-1.2.2.jar"/>
<pathelement location="${sejda.path}/lib/logback-core-1.2.2.jar"/>
<pathelement location="${sejda.path}/lib/sambox-1.1.46.jar"/>
<pathelement location="${sejda.path}/lib/sejda-io-1.1.4.jar"/>
<pathelement location="${sejda.path}/lib/fontbox-2.0.12.jar"/>
<pathelement location="${sejda.path}/lib/slf4j-api-1.7.25.jar"/>
<pathelement location="${sejda.path}/lib/sejda-console-3.2.66.jar"/>
</classpath>
</java>
</target>
Вывод:
Watermark:
[java] Configuring Sejda 3.2.66
[java] Document root element "sejda", must match DOCTYPE root "null".
[java] Document is invalid: no grammar found.
[java] Starting execution with arguments: '-Dfile.encoding=UTF8 -Dapp.name=sejda-console -Dapp.repo=C:/tools/sejda-
console-3.2.66/lib -Dapp.home=C:/tools/sejda-console-3.2.66 -Dbasedir=C:/tools/sejda-console-3.2.66 setheaderfooter -f c
:\Temp\test.pdf -o c:\temp\out.pdf -s all -y top -x center -t Courier-Bold -l 'This publication is under embargo until 3
December 2018, 11:00 UTC' -c #ff0000 --overwrite'
[java] Java version: '1.8.0_191'
[java] Sejda Console
[java]
[java] Basic commands:
[java]
[java] addbackpages Takes one or more pages from a PDF document and adds them to
[java] one or more PDF documents after each 'n' pages.
По какой-то причине Сейда не распознает команду setheaderfooter
и просто выводит справкуИнформация.Эта часть сообщения об ошибке
[java] Document root element "sejda", must match DOCTYPE root "null".
[java] Document is invalid: no grammar found.
не имеет для меня никакого смысла.Я никогда не вызывал класс из Ant, только jar-файлы, поэтому я не уверен, что делать дальше.: - /
Редактировать: Благодаря @martin_clayton в комментариях я переместил параметры -D
в элементы jvmarg
, что немного продвигает вперед, потому что теперьСообщения об ошибках касаются фактических параметров для sejda:
[java] Executing 'C:\Program Files\Java\jre1.8.0_191\bin\java.exe' with arguments:
[java] '-Dapp.name="sejda-console"'
[java] '-Dapp.repo="C:/tools/sejda-console-3.2.66/lib"'
[java] '-Dapp.home="C:/tools/sejda-console-3.2.66"'
[java] '-Dbasedir="C:/tools/sejda-console-3.2.66"'
[java] '-Dfile.encoding=UTF8'
[java] '-Xmx1024m'
[java] '-classpath'
[java] 'C:\tools\ .... snipped for brevity ....'
[java] 'org.sejda.cli.Main'
[java] 'setheaderfooter'
[java] '--file 'c:\Temp\test.pdf''
[java] '--output 'c:\temp\out.pdf''
[java] '--pageRange all'
[java] '-y top'
[java] '-x center'
[java] '-t 'Courier-Bold''
[java] '-l 'This publication is under embargo until 3 December 2018, 11:00 UTC''
[java] '-c #ff0000'
[java] '--overwrite'
[java]
[java] The ' characters around the executable and arguments are
[java] not part of the command.
[java] Configuring Sejda 3.2.66
[java] Document root element "sejda", must match DOCTYPE root "null".
[java] Document is invalid: no grammar found.
[java] Starting execution with arguments: 'setheaderfooter --file 'c:\Temp\test.pdf' --output 'c:\temp\out.pdf' --pageRange all -y top -x center -t 'Courier-Bold' -l 'This publication is under embargo until 3 December 2018, 11:00 UTC' -c #ff0000 --overwrite'
[java] Java version: '1.8.0_191'
[java] Unexpected Option: file 'c:\Temp\test.pdf'
[java] Unexpected Option: output 'c:\temp\out.pdf'
[java] Unexpected Option: pageRange all
[java] Option must have a value: [--verticalAlign -y value] : vertical align defining if it's a header (top) or a footer (bottom). { top, bottom }. Default is 'bottom' (optional)
[java] Unexpected Option:
[java] Option must have a value: [--font -t value] : font as a standard font type 1, defined in Pdf reference 1.7, section 5.5.1. { Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic, Helvetica, Helvetica-Bold, Helvetica-Oblique, Helvetica-BoldOblique, Courier, Courier-Bold, Courier-Oblique, Courier-BoldOblique, Symbol, ZapfDingbats }. Default is 'Helvetica' (optional)
[java] Option must have a value: --output -o value : output file or directory (required)
[java] Option must have a value: [--outputPrefix -p value] : prefix for the output files name (optional)
[java] Option must have a value: [--horizontalAlign -x value] : horizontal align { center, right, left }. Default is 'center' (optional)
[java] Option must have a value: [--fontColor -c value] : font color. Defaults to black #000000. Ex: -c #AA3399 (optional)
[java] Unexpected Option: e
[java] Unexpected Option: n
[java] Unexpected Option: r
[java] Unexpected Option: '
[java] Unexpected Option: C
.... and more ....
Кажется, он не понимает arg
s как параметры.: - |Кроме того, в нем по-прежнему есть предыдущие сообщения об ошибках для элемента Document "sejda".
Редактировать: Я только что проверил с (устарел или, по крайней мере, 'настоятельно рекомендуется избегать')) <arg line=""/>
, и это работает!«Подтверждение концепции»:
<arg line="setheaderfooter -f c:/temp/test.pdf -o c:/temp/out.pdf -l 'BLAH'"/>