4-1. フォントメトリクスファイルの作成
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明朝" も同様です。
また、アイコンと拡張子の違いにより、フォントの種類を判別することができます。
- .FON
-
Adobe Type Manager フォント。アドビシステムズ社が開発し Windows・Mac・unix に提供された、最初の倍率を変更出来るフォント。大きいサイズではアウトラインのギザギザが目立つものがある。
- .TTF
-
TrueType フォント。 アップル社が開発しマイクロソフトにライセンス供与しているフォント。各文字ごとにポイントサイズの指定が可能。高品質の文字を表示出来る。Windows と Mac の TrueType フォントには若干の相違がある。
- .TTF
-
OpenType フォント。TrueType フォーマットの拡張であり、高品質の国際印刷をサポートするため,フォントの能力を拡張する追加情報を包む。OpenType は文字の構造を読みとり、文字と文字の組み合わせを関連づける事が出来る。Windows2000 , WindowsXP に標準で幾つかの欧文用 OpenTypeフォントが入っている。
- .TTC
-
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 のディレクトリ名とファイル名指定
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
新着記事
-
#1724. 店名は変われど味は変わらず。横浜中華街・富泰楼麺房のとりそば ― 澄んだスープに鶏油と葱だけのシンプル極上ラーメン:
2026-01-20 横浜中華街・広東路の富泰楼麺房(ふうたいろうめんぼう)にてランチ。もとは揚州麺房だった店だが、2024年7月1日に店名を変更して富泰楼麺房になった。オーナーは変わったが、料理人はそのままで、料理の味も変わっていない。横浜中華街は店の入れ替わ...
-
#1723. 大ぶり海老天が2本。横浜元町「そば処 木の芽」海老天丼 ― 蕎麦屋の仕事が光る:
2026-01-19 横浜・元町のそば処 木の芽にてランチ。海老天丼をオーダー。蕎麦屋の丼ものの「花」と言えば、やはり天丼、なかでも海老天丼。今日は暖簾をくぐる前からそれ以外の選択肢が思い浮かばなかった。運ばれてきた丼には、大ぶりの海老天が堂々と2本。衣は軽く、...
-
#1722. 春菊+柚子胡椒が決め手の本丸亭・横浜元町店の本丸塩らー麺 ― 代官坂で味わう極上塩ラーメンランチ:
2026-01-17 横浜・元町・代官坂のラーメン店本丸亭(ほんまるてい)横浜元町店にてランチ。本丸塩らー麺をオーダー。トッピングは、ガッツリ系のチャーシューに雲呑、そして春菊。標準で春菊が入っているのも特徴だが、さらに春菊を追加してもらう。春菊がラーメンに入る...
-
#1721. 黒ホッピーで独酌!東北人家の閃椒土豆絲&干鍋筋头巴脑 ― 横浜中華街で味わう中国東北料理の辛旨キレ味:
2026-01-16 横浜中華街・広東道の東北人家(とうほくじんか)新館にて、晩餐という名の独酌。東北人家は、中国東北地方の料理(東北菜)の店。中華街では珍しくホッピーが置いてあり、本日も黒ホッピーのセットでスタート。オーダーは閃椒土豆絲(ジャガイモ細切りの唐辛...
-
#1720. 横浜・馬車道の老舗トンカツ「勝烈庵」で昼ビール&ロースかつ定食 ― 休日に背筋が伸びる名店でひとり贅沢ランチ:
2026-01-16 休暇をとって、午前中に所用を済ます。そのまま、横浜の街を少し散歩して、横浜・馬車道の勝烈庵(かつれつあん)馬車道総本店にてランチ。勝烈庵といえば、横浜のトンカツの老舗。やや高級店の落ち着いた雰囲気があり、背筋が伸びる一方で、不思議と居心地が...
merita.jp