FOP には日本語フォントが含まれていないため、日本語を含む PDF を作成するためには、日本語フォントをインストールしておく必要があります。フォントの種類にはさまざまなものがありますが、2004年1月現在、FOP で使用可能なフォントは Type1 フォント と TrueType フォント の 2 種類です。
FOP は、フォント・メトリクス・ファイルという フォント情報を記述した XML 形式のフォント・データ・ファイルを使用します。今のところ、FOP が利用可能な日本語のフォント・メトリクス・ファイルを配布・販売を行っているサイトや企業はありませんので、ユーザが日本語 Type1 フォント、または、 TrueType フォントをフォント・メトリクス・ファイルに変換して作成する必要があります。日本語 Type1 フォント、または、 TrueType フォントの入手には、パブリック・ドメインなものをダウンロードしたり、企業が販売しているものを購入するなど、いくつかの方法が考えられます。
ここでは、一番簡単な方法として、Widows XP に標準でインストールされているフォントを、フォント・メトリクス・ファイルに変換する方法を説明します。
まず、Windows XPに含まれる、日本語 TrueType フォントを確認してみます。
Windows XP で [コントロールパネル]-[フォント] を開くと、現在インストールされているフォントの一覧表が表示されます。
今回は Windows XP で日本語フォントとして提供されている以下のフォントを取り出すものとします。
MS Gothic MS PGothic MS UI Gothic
MS Mincho MS PMincho
MS ゴシック MS Pゴシック MS UI Gothic
MS 明朝 MS P明朝
"MS Gothic MS PGothic MS UI Gothic" と "MS ゴシック MS Pゴシック MS UI Gothic" は、単にフォント名が日本語・英語であるだけで、実際には同じフォントです。"MS Mincho MS PMincho" と "MS 明朝 MS P明朝" も同様です。
また、アイコンと拡張子の違いにより、フォントの種類を判別することができます。
Adobe Type Manager フォント。アドビシステムズ社が開発し Windows・Mac・unix に提供された、最初の倍率を変更出来るフォント。大きいサイズではアウトラインのギザギザが目立つものがある。
TrueType フォント。 アップル社が開発しマイクロソフトにライセンス供与しているフォント。各文字ごとにポイントサイズの指定が可能。高品質の文字を表示出来る。Windows と Mac の TrueType フォントには若干の相違がある。
OpenType フォント。TrueType フォーマットの拡張であり、高品質の国際印刷をサポートするため,フォントの能力を拡張する追加情報を包む。OpenType は文字の構造を読みとり、文字と文字の組み合わせを関連づける事が出来る。Windows2000 , WindowsXP に標準で幾つかの欧文用 OpenTypeフォントが入っている。
TrueType Collectionフォント。TrueTypeフォーマットの拡張で、和文フォントに多く見られる。固定ビッチとプロポーショナルなど、複数の TrueType フォントのテーブルを含む。
[コントロールパネル]-[フォント] は、実際には、ディレクトリ C:\WINDOWS\Fonts (Cygwin の表記では /cygdrive/c/WINDOWS/Fonts/ となる) のことであり、このディレクトリにあるファイルが Windwos XP へインストールされたフォントファイルです。
Cygwin でフォント・ファイルを確認します。
$ ls -l /cygdrive/c/WINDOWS/Fonts/ ... -rwxrwx---+ 1 Administ SYSTEM 8272028 Aug 27 2001 msgothic.ttc -rwxrwx---+ 1 Administ SYSTEM 9135960 Aug 27 2001 msmincho.ttc ...
フォントファイルと含まれているフォントの関係は以下のようになります。
/cygdrive/c/WINDOWS/Fonts/msgothic.ttc:
MS Gothic MS PGothic MS UI Gothic
MS ゴシック MS Pゴシック MS UI Gothic
/cygdrive/c/WINDOWS/Fonts/msmincho.ttc:
MS Mincho MS PMincho
MS 明朝 MS P明朝
ここでは、すでにフォント名はわかっていますが、念のためにフォント名を取得してみます。この方法は、フォントファイルに含まれているフォント名を調査する場合に有効な方法です。FOP に他のフォントを 追加する場合には、必ず必要になると思います。
調査方法は、 FOP に含まれる org.apache.fop.fonts.apps.TTFReader クラス (TrueType フォントをレンダリングするためのクラス) を、オプションに ttc ファイルを指定して実行します。ttc ファイルを指定する際には、フォント名を指定するため -ttcname オプションも指定しなければなりませんが、ここではわざと -ttcname オプションを指定せず 、エラーを発生させてフォント名を表示させます。
Java は Windows アプリケーションとして動作するため、ディレクトリ名とファイル名指定は、 C:\Windows などの Windows 表記に準じます。 あるいは、 C:/Windows のように区切り文字として \ でなく / を使用することもできますので。ここでは Cygwin との兼ね合いもあり、区切り文字 / を使います。
$ java -cp \ c:/cygwin/usr/local/java/fop-0.20.5/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ c:/WINDOWS/Fonts/msmincho.ttc test.xml TTF Reader v1.1.1 Reading c:/WINDOWS/Fonts/msmincho.ttc... This is a TrueType collection file with 2 fonts Containing the following fonts: MS Mincho MS PMincho java.lang.IllegalArgumentException: For TrueType collection you must specify which font to select (-ttcname) at org.apache.fop.fonts.TTFFile.readFont(TTFFile.java:416) at org.apache.fop.fonts.apps.TTFReader.loadTTF(TTFReader.java:222) at org.apache.fop.fonts.apps.TTFReader.main(TTFReader.java:184) $ java -cp \ c:/cygwin/usr/local/java/fop-0.20.5/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ c:/WINDOWS/Fonts/msgothic.ttc test.xml TTF Reader v1.1.1 Reading c:/WINDOWS/Fonts/msgothic.ttc... This is a TrueType collection file with 3 fonts Containing the following fonts: MS Gothic MS PGothic MS UI Gothic java.lang.IllegalArgumentException: For TrueType collection you must specify which font to select (-ttcname) at org.apache.fop.fonts.TTFFile.readFont(TTFFile.java:416) at org.apache.fop.fonts.apps.TTFReader.loadTTF(TTFReader.java:222) at org.apache.fop.fonts.apps.TTFReader.main(TTFReader.java:184)
以上の結果より、各ファイルに含まれているフォント名がはっきりしました。
/cygdrive/c/WINDOWS/Fonts/msgothic.ttc:
MS Gothic
MS PGothic
MS UI Gothic
/cygdrive/c/WINDOWS/Fonts/msmincho.ttc:
MS Mincho
MS PMincho
次に FOP に含まれる org.apache.fop.fonts.apps.TTFReader クラスを正しく実行して、フォント・メトリクス・ファイルを作成します。
org.apache.fop.fonts.apps.TTFReader クラスの実行方法は以下のとおりです。
java -cp \ c:/cygwin/usr/local/java/fop-0.20.5/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname フォント名 \ Input TrueTypeフォントファイル名 \ Output フォントメトリクスファイル名 (XMLフォーマット)
フォントメトリクスファイル名は以下のディレクトリへ出力するものとします。
フォントメトリクスファイル名の出力ディレクトリ:
/usr/local/java/fop-0.20.5/conf/
実際に実行すると以下のようになります。
$ java -cp \ c:/cygwin/usr/local/java/fop-0.20.5/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname "MS Gothic" \ c:/WINDOWS/Fonts/msgothic.ttc \ c:/cygwin/usr/local/java/fop-0.20.5/conf/msgothic.xml TTF Reader v1.1.1 Reading c:/WINDOWS/Fonts/msgothic.ttc... This is a TrueType collection file with 3 fonts Containing the following fonts: * MS Gothic MS PGothic MS UI Gothic Number of glyphs in font: 20458 Postscript format 3 Creating xml font file... Creating CID encoded metrics Writing xml font file c:/cygwin/usr/local/java/fop-0.20.5/conf/msgothic.xml... This font contains no embedding license restrictions
これを、以下の 5 フォントについて実行して、 5 個のフォント・メトリクス・ファイルを作成します。
/cygdrive/c/WINDOWS/Fonts/msgothic.ttc:
入力: MS Gothic
→ 出力: c:/cygwin/usr/local/java/fop-0.20.5/conf/msgothic.xml
入力: MS PGothic
→ 出力: c:/cygwin/usr/local/java/fop-0.20.5/conf/mspgothic.xml
入力: MS UI Gothic
→ 出力: c:/cygwin/usr/local/java/fop-0.20.5/conf/msuigothic.xml
/cygdrive/c/WINDOWS/Fonts/msmincho.ttc:
入力: MS Mincho
→ 出力: c:/cygwin/usr/local/java/fop-0.20.5/conf/msmincho.xml
入力: MS PMincho
→ 出力: c:/cygwin/usr/local/java/fop-0.20.5/conf/mspmincho.xml
面倒なので以下のような シェル・スクリプトを作っておく方が良いでしょう。
#! /bin/sh # # Shell script to create font metrics files. FOP_HOME=c:/cygwin/usr/local/java/fop-0.20.5 WINDOWS_FONT_DIR=c:/WINDOWS/Fonts java -cp \ "$FOP_HOME"/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname "MS Gothic" \ "$WINDOWS_FONT_DIR"/msgothic.ttc \ "$FOP_HOME"/conf/msgothic.xml java -cp \ "$FOP_HOME"/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname "MS PGothic" \ "$WINDOWS_FONT_DIR"/msgothic.ttc \ "$FOP_HOME"/conf/mspgothic.xml java -cp \ "$FOP_HOME"/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname "MS UI Gothic" \ "$WINDOWS_FONT_DIR"/msgothic.ttc \ "$FOP_HOME"/conf/msuigothic.xml java -cp \ "$FOP_HOME"/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname "MS Mincho" \ "$WINDOWS_FONT_DIR"/msmincho.ttc \ "$FOP_HOME"/conf/msmincho.xml java -cp \ "$FOP_HOME"/build/fop.jar \ org.apache.fop.fonts.apps.TTFReader \ -ttcname "MS PMincho" \ "$WINDOWS_FONT_DIR"/msmincho.ttc \ "$FOP_HOME"/conf/mspmincho.xml
実行後は、以下のようなファイルが作成されます。
$ pwd /usr/local/java/fop-0.20.5/conf $ ls -l total 2104 -rw-r--r-- 1 merita なし 193 Jul 15 2003 config.dtd -rw-r--r-- 1 merita なし 1547 Jul 15 2003 config.xml -rwxr-xr-x 1 merita なし 441841 Jan 19 13:11 msgothic.xml -rwxr-xr-x 1 merita なし 406363 Jan 19 13:11 msmincho.xml -rwxr-xr-x 1 merita なし 444157 Jan 19 13:11 mspgothic.xml -rwxr-xr-x 1 merita なし 408678 Jan 19 13:11 mspmincho.xml -rwxr-xr-x 1 merita なし 444160 Jan 19 13:11 msuigothic.xml -rw-r--r-- 1 merita なし 3245 Jul 15 2003 userconfig.xml
#1703. 春を感じるご馳走 - 春竹の子と干し椎茸の醤油煮込み + 桜海老と春野菜の土鍋ご飯 山椒風味 @一楽.横浜中華街:
2018-03-26 横浜中華街・中華街大通りの一楽にて晩飯。一品目は、春メニューから春竹の子と干し椎茸の醤油煮込み。これは・・・素食(スゥシー,精進料理)の紅焼烩双冬かな? 紅焼(ホンシャオ)ともちょっと違うような、甘い香りのする焼付け具合が肉厚の干し椎茸とよ...
#1702. 福建料理 (閩菜) の定番麺料理 - 燜麺 (海鮮煮込みそば) @華錦飯店.横浜中華街:
2018-03-25 横浜中華街・市場通りの華錦飯店(かきんはんてん)にて晩飯。こちらは隣の魚屋が経営母体の中華料理店。このため海鮮料理に強いと言われている。また、経営者の出身地が福建とのことで、一般的な中華料理を中心に、福建料理(閩菜)を少し加えたメニュー構成...
#1701. 横浜中華街で中国茶 - 龍井茶 @隆記.横浜中華街:
2018-03-25 オフィスでは、だいたい中国茶を飲んでいる。自分用の中国茶マグ・カップで、茶葉の種類を変えつつ何杯も飲んでいるが、これがコーヒーよりも精神バランスに良い感じで、リラックスして、かつ、集中できる感じ。正念場・修羅場・短時間でいいから集中がほしい...
#1700. アットホームな広東料理店 - 春巻 + 咸蛋蒸肉餅 (塩タマゴと豚肉の蒸し) @龍鳳酒家.横浜中華街:
2018-03-24 横浜中華街・中山路の龍鳳酒家(りゅうほうしゅか)にて晩飯。こちらは家庭的なお店で、広東料理(粤菜)の家庭料理(家郷菜)が得意。一品目はビールの酒肴として春巻をオーダー。中身がしっかりと詰まった春巻は、カリッとかじると熱々の中身が口の中に弾け...
#1699. 横浜・元町で米国式スタンダードな朝食を - ブレックファスト・プレート + 玉子1個追加 @バイ・ミー・スタンド.代官坂.元町.横浜:
2018-03-24 横浜・元町・代官坂のバイ・ミー・スタンド(BUY ME STAND)元町店 にて朝食。ここはユニークかつ美味しいサンドイッチを出す店。朝8時から開店していて、ゴージャスな朝食が食べられるので、朝から開店している飲食店が少ない元町近辺では貴重...