ドキュメントのPDF化に、BSBを使用していたが、オンラインで照会する度にPDF化するのは勿体無いので、オフラインで作成することにした。BSBを使わなくてもFOP単独でXSLによるXSL-FOへの変換ができることが分かったので、FOPを単独で使用することにした。
とはいえ、動的にPDFを生成することが無いわけでもないので、Rubyから簡単に使用する為の、簡単なライブラリ(クラスファイル)も作成してみた。
以下は、Windows(XP)での作業メモである。
FOPの実行には、Javaの実行環境が必要。
ダウンロードサイトからバイナリをダウンロードする。今回使用したのは、fop-0.95-bin.zip。
ダウンロードサイトからバイナリをダウンロードする。今回使用したのは、fop-0.95-bin.zip。
ダウンロードしたfop-0.95-bin.zipを解凍し、適当な場所に配置する。今回は、C:\fopに展開した。
C:\WINDOWS\Fonts下から日本語フォントのフォントファイルを探す。
MS明朝のフォントメトリックスファイル作成の例を以下に示す。
MSMINCHO.TTCに含まれるフォントを調べる為に、-ttcnameパラメタを指定しないで実行してみる。
"MS Mincho","MS PMincho"の2種類のフォントが存在することが分かる。
"MS Mincho","MS PMincho"を-ttcnameパラメタに設定してフォントメトリックスファイルを作成する。
メトリックスファイル作成例
フォントメトリックスファイルの中身が一部文字化けしていて(TTFReader不具合?)、これが原因でFOPがクラッシュするので、修正する。
family-nameの中が化けている。たぶん日本語なのだろう。とりあえず使わないのでつぶしておく。
C:\fop\fop-0.95\conf\fop.xconfをC\fop\fop.confにコピーし、フォント情報を追記する。
fop定義ファイル例
Fopをコマンドとして呼び出すfopクラスを作成した。
環境変数で、FOP定義ファイルとFOPインストール場所を指定する。