« 2006年03月17日 | メイン | 2006年03月19日 »
2006年03月18日
PDFとフォント(8) Windows アプリケーションのフォント・メニュー
さて、2006年03月16日のPDFとフォント(6) 和文フォントのファミリーについてに、Ken Lundeさんから、『CJKのOpenTypeフォントの「name」テーブルの内容について、Adobe Tech Note #5149を参照』せよ、というコメントをいただきました。
Adobe Tech Note #5149
OpenType-CID/CFF
CJK Fonts: ‘name’
Table Tutorial
http://partners.adobe.com/public/developer/en/font/5149.OTFname_Tutorial.pdf
早速読んでみましたが、この文書はフォントを作成する人向けの、Name Table設定のための手引書です。
これを見ますと、Microsoft/Unicode Menu Namesに、Font Family (ID1), Font Subfamily (ID2), 優先Font Family (ID16), 優先Font Subfamily (ID17)について、次のようにまとめられています。
・ID1は、優先Font Family (ID16)と優先Font Subfamily (ID17)をスペースを間において結合した文字列とする。
・ID2は、head.MacStyle とOS/2.Selectionのフィールドの情報が、ボールドを示さない時は、Regular固定とする。ボールドを示す時は、Bold固定とする。
平成角ゴシックStdファミリーは、その通りに設定されています。
ところで、Menu Nameという表現は、PostScript Nameとの区分上の表現なのでしょう。そして、この名前はメニューに表示するためのものであることを意味すると予想されます。
そこで、平成角ゴシックStdフォントの名前がWindows上のMicrosoft Wordでどのように表示されるかを見てみました。
1.Windows XP を英語モードで起動した時
2.Windows XP を日本語モードで起動した時
ここから次のことがわかります。
(1) Microsoft Officeでは、Name Table のFont Family (ID1)は、フォントを選択するためのリストボックスに表示するための名前として使われている。
(2) Microsoft Officeのフォント選択ダイヤログには、優先Font Family名 (ID16)は表示されない。
では、一般のWindowsアプリケーションは、優先Font Family (ID16)と優先Font Subfamily (ID17)を使うことができるのでしょうか?
普通のWindowsアプリケーションは、WindowsのAPI(WindowsOSが、アプリケーションに提供するインターフェイス)を使って、Fontファイルの内容を読みます。従って、上の質問に対する回答は、WindowsAPIの機能を調べてみないと分かりません。
で、当社のプログラマの一人に聞きましたら、そんなことは知らないというつれない返事でした。
アンテナハウスのXSL FormatterやPDF関連のライブラリーは、Windowsの他、Linux、Solaris、AIXなどで動きます。これを実現するためWindowsAPIを使わずに、自力で、Fontファイルの内容を読んでいます。ですのでWindowsAPIの機能なんて知らないという答えになってしまうのも仕方ないのです。プログラマも分業制ですしね。
ところで、殆どのソフトハウスは、WindowsAPIを使ってフォントファイルから情報を取り出しているはずです。なぜかと言いますと、例えば日本で販売されているPDF作成ソフトでJAVA版を除くと残りのソフトは、殆どWindows版のみですから。
そうしますと、優先ファミリー (ID16)と優先サブファミリー (ID17)を使うことができるかどうかは、MicrosoftのWindowsAPIにその機能が用意されているかどうか、に依存してしまうということになるのですが。