←前へ 目次↑ 次へ→

3.5. copper Antタスク

頻繁に更新されるドキュメントを素早くまとめて変換するために、Apache Antによるバッチ処理をサポートしています。 AntはJavaで開発されたフリーのビルド・ツールです。Antについての詳細は書籍などをご参照下さい。

3.5.1. 使用方法

Copper PDFのAntタスクは、Copper PDF本体がインストールされたサーバー上で実行することが出来ます。 別途ライブラリをダウンロードする必要はありません。

3.5.2. copper タスク

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.font.policy" value="cid-keyed" />
</copper>

上記のサンプルは実際にドキュメントディレクトリ(docsあるいは/usr/share/doc/copper-pdf)に収められています。 一旦manual.pdfを削除して、ドキュメントディレクトリ内でantを実行することで試すことが出来ます。

3.5.3. うまく動かない場合

Can't connect to X11... というエラーが表示される

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.font.policy" value="cid-keyed" />
</copper>

←前へ 目次↑ 次へ→
Copper PDF ©2008-2009 GNN & Co.,Ltd. All rights reserved.