D:20011210 免責事項
自分的には近頃気になるキーワードは、XMLとPDFなんですね。で、 この二つのキーワードでWEBを検索してみると、返ってくる答えのなかで は「FOP」というのが面白そうだなと思ったわけです。FOPはXSLを使って XML文書をフォーマットするJAVA2のアプリケーションです。メインの出力 形式はPDFということになっています。
FOPを動かすにはJAVA2の環境 が必須なので、あらかじめインストールと設定をしておくことが必要です。
Apache XML ProjectのWEBサイトからFOPの最新版[1]をGET します。はじめてFOPを使う場合はsrcが必要だと思います。入手したファ イルを解いたあとに、インストール先のディレクトリへ移動して build.shを走らせ、続いて runtests.shでFOPの動作を確認します[2]。 参考文書には、fop.jarは配布ファイルに含まれているから build.shは使わなくてもよいと記述されています が、念のため使いました。runtests.shによって配布 ファイル内のfoファイルからPDFファイルが生成されます[3]。生成されたPDF ファイルがacroreadでうまく表示できれば、基本的な動作確認は終了で す。
(伸長、展開、コンパイル、テスト) ~$ gzip -d Fop-0.20.1-src.tar.gz ~$ tar xvf Fop-0.20.1-src.tar ~$ cd Fop-0.20.1 ~$ sh build.sh ... BUILD SUCCESSFUL ... ~$ cd docs/examples/ ~$ sh runtests.sh ... BUILD SUCCESSFUL ... |
FOPではType1とTrueTypeフォントを使うことができるが、ユーザ がフォントを追加して使えるようにするには、フォント・メトリックを 記述したxml形式ファイルが必要になる。フォント・メトリック・ファイルは、 FOPに付属しているツールで簡単に生成することができる。使うフォントは (WindozBoxでは使っていない)Canvas6付属のIwataフォントにする。
まず最初にフォント・メトリック・ファイルを生成して、つぎに フォントをFOPへ登録する。 登録はuserconfig.xmlを編集して生成したフォント・メトリック・ファ イルのパス、TrueTypeフォントファイルのパス、フォントの別名などを 指定すればよい。userconfig.xmlのなかに記述例があるので参考にする。 これで、さきほど登録したフォントをfoファイルのなかの font-familyで使うことができる。
(フォント・メトリック・ファイルを生成) *このクラスパスは冗長かもしれない。 ~/Fop-0.20.1$ java -cp build/fop.jar:lib/batik.jar:lib/xalan-2.0.0.jar:lib/xerce s-1.2.3.jar:lib/jimi-1.0.jar org.apache.fop.fonts.apps.TTFReader /usr/X11R6/lib/ X11/fonts/TrueType/iwaminm.ttf iwaminm.xml TTF Reader v1.1.1 Reading /usr/X11R6/lib/X11/fonts/TrueType/iwaminm.ttf... Number of glyphs in font: 12482 Postscript format 3 Creating xml font file... Creating CID encoded metrics Writing xml font file iwaminm.xml... This font contains no embedding license restrictions |
つぎに、登録したTrueTypeフォントを埋め込んでPDFファイルを 作ってみよう。そのためにはFOPを起動するときに"-c"オプションを使っ て設定ファイル(userconfig.xml)を指定するだけでよい。
~/Fop-0.20.1$ Fop -c conf/userconfig.xml simple-ja.fo simple-ja.pdf |
生 成されたPDFファイル(109kb)をWindoz環境では、Acrobat(v5.0.1)と Acrobat Reader(v5.0.5)、さらにLinux環境ではAcrobat Reader(v4.0) で表示できることを確認した。そして、文書の概要(General Info)のPDF変換 (Producer)は「FOP 0.20.1」、作成(Creator)は「不明(Not Available)」 となっていた。また、フォント情報(Font Info)を見ると、つぎの図の とおりTrueTypeフォントが埋め込まれているのがわかる。
Figure 4. Acrobat Reader(v4.0)のフォント情報
[1] | 今回はFop-0.20.1-src.tar.gzでした。 |
[2] | 参考文書:~/Fop-0.20.1/docs/html-docs/compiling.html |
[3] | PDFファイルの生成先: Fop-0.20.1/docs/examples/tests/ |