←前へ 目次↑ 次へ→

3.14. transcode Antタスク

3.14.1. Antタスクの概要

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

transcode Antタスクは、Copper PDF本体と、Java版CTIP 2.0ドライバに含まれています。 Copper PDF本体のライブラリを使用する場合は、直接ローカルマシンのライブラリを使用する方法と、 CTIP 2.0またはHTTP/RESTプロトコルで接続する方法を使うことができます。 CTIP 2.0ドライバを使用する場合は、後者の方法だけです。

3.14.2. transcode タスクの使用方法

ローカルマシン上のCopper PDFを直接利用して、transcode タスクを使用するためには、Antのbuild.xml中で次のように宣言する必要があります。

<path id="lib.path">
  <fileset dir="
			Copper PDFのlibディレクトリのパス
			" includes="*.jar"/>
</path>
<typedef classpathref="lib.path" resource="jp/cssj/driver/ant/tasks.properties"/>

Java版のCTIP 2.0ライブラリを使う場合は、同様に次のように宣言します。

<typedef classpath="cti-driver.jarへのパス" resource="jp/cssj/driver/ant/tasks.properties"/>

以降、transcodeという要素名でタスクを使えるようになります。

transcodeタスクに指定することができる属性は次の通りです。

transcode タスクの属性
属性名 説明
srcDir 変換前のXML,HTMLファイルなどが格納されたディレクトリです。 省略した場合、カレントディレクトリとなります。
includes srcDir中の変換対象となるファイルのパターンです。
excludes srcDir中の変換対象外となるファイルのパターンです。
destDir 出力先のディレクトリです。省略するとsrcDirと同じディレクトリになります。
suffix 出力結果ファイルの拡張子です。 省略した場合は.pdfとなります。

接続先はtranscode要素内で、connection要素を使って設定します。 ただし、ローカルマシンに接続する場合は設定は不要です。

connection要素の属性
属性名 説明
uri 接続先URI。
user ユーザーID。
password パスワード。

transcode要素内で、property要素を使って入出力プロパティを設定することができます。

property要素の属性
属性名 説明
name プロパティの名前。
value プロパティの値。

以下の例では、ローカルホストで動作しているCopper PDFを使って、docs/manual.htmlからdocs/manual.pdfを出力します。

<transcode includes="docs/manual.html" suffix=".pdf">
	<connection uri="ctip://localhost:8099/" user="user" password="kappa" />
	<property name="input.include" value="**" />
	<property name="output.pdf.bookmarks" value="true" />
	<property name="output.pdf.hyperlinks" value="true" />
	<property name="output.pdf.fonts.policy" value="cid-keyed" />
</transcode>

transcode AntタスクはHTTP/RESTによる接続にも対応しています。 HTTPを使う場合は "http://127.0.0.1:8097/" のようにURIを設定してください。

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

←前へ 目次↑ 次へ→
Copper PDF ©2012 Zamasoft. All rights reserved.