頻繁に更新されるドキュメントを素早くまとめて変換するために、Apache Antによるバッチ処理をサポートしています。 AntはJavaで開発されたフリーのビルド・ツールです。Antについての詳細は書籍などをご参照下さい。
Antタスクは、Copper PDF本体がインストールされたサーバー上で実行する必要があります。 別途ライブラリをダウンロードする必要はありません。
copper タスクはドキュメントの一括変換を行うためのタスクです。 なお、CSSJ 1.x系ので使われていたcssjというタスク名も使用できます。 copper タスクを使用するためには、Antのbuild.xml中で次のように宣言する必要があります。
<path id="lib.path"> <fileset dir="Copper PDFのlibディレクトリのパス" includes="*.jar"/> </path> <typedef classpathref="lib.path" resource="jp/cssj/driver/anttask/tasks.properties"/>
以降、copperという要素名でタスクを使えるようになります。
copperタスクに指定することができる属性は次の通りです。
属性名 | 説明 |
---|---|
configFile | Copper PDFの設定ファイル(profiles/default.properties)です。 |
configDir | Copper PDFの(license-keyファイルが置かれた)設定ディレクトリです。 |
srcDir | 変換前のXML,HTMLファイルなどが格納されたディレクトリです。 省略した場合、カレントディレクトリとなります。 |
includes | srcDir中の変換対象となるファイルのパターンです。 |
excludes | srcDir中の変換対象外となるファイルのパターンです。 |
destDir | 出力先のディレクトリです。省略するとsrcDirと同じディレクトリになります。 |
suffix | 出力結果ファイルの拡張子です。 省略した場合は.pdfとなります。 |
copper要素内で、property要素を使って入出力プロパティを設定することができます。
属性名 | 説明 |
---|---|
name | プロパティの名前。 |
value | プロパティの値。 |
以下の例では、docs/manual.htmlからdocs/manual.pdfを出力します。
<copper includes="docs/manual.html" suffix=".pdf" configFile="conf/profiles/default.properties"> <includeresource pattern="**" /> <property name="output.pdf.bookmarks" value="true" /> <property name="output.pdf.hyperlinks" value="true" /> <property name="output.pdf.fonts.policy" value="cid-keyed" /> </copper>
上記のサンプルは実際にドキュメントディレクトリ(docsあるいは/usr/share/doc/copper-pdf)に収められています。 一旦manual.pdfを削除して、ドキュメントディレクトリ内でantを実行することで試すことができます。
JDK 1.4.2では以下のようなエラーが発生することがあります。
[copper] java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable. [copper] at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) [copper] at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134) [copper] at java.lang.Class.forName0(Native Method) ...省略... [copper] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) [copper] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67) [copper] Transcoded 0 file(s). BUILD FAILED /home/miyabe/workspaces/cssj/cssj/build/release/docs/build.xml:11: java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
これは、Copper PDFが一部でグラフィック環境を必要とする処理を行っているため、 ディスプレイが接続されていない環境で発生するものです。 以下のように、ANT_OPTS環境変数でjava.awt.headlessシステムプロパティをtrueにするように設定することで、 問題が解消されます。
export ANT_OPTS=-Djava.awt.headless=true
出力結果に「ライセンスファイルが存在しないか期限切れです」と表示される場合や、 一部の機能が使用できない場合は、ライセンスキーのインストールか、 confディレクトリ(license-keyファイルが置かれたディレクトリ)のパスを指定する必要があります。
confディレクトリはcopperタスクのconfigDir属性で指定するか、 ANT_OPTS環境変数によりjp.cssj.copper.configシステムプロパティで指定することもできます。
export ANT_OPTS=-Djp.cssj.copper.config=/etc/copper-pdf
<copper includes="docs/manual.html" suffix=".pdf" configFile="conf/profiles/default.properties" configDir="/etc/copper-pdf"> <includeresource pattern="**" /> <property name="output.pdf.bookmarks" value="true" /> <property name="output.pdf.hyperlinks" value="true" /> <property name="output.pdf.fonts.policy" value="cid-keyed" /> </copper>