- - PR -
論理フォント名から物理フォント名の取得方法
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-30 15:57
こんにちは。
jakarta poi を使用してエクセルファイルを作成するときにフォントを指定できるのですが、 "MS ゴシック"等の物理フォント名を直接指定すればうまくいくのですが、 国際化を考え、プログラム上に物理フォント名を直接記述することを避けたいです。 論理フォント名から物理フォント名を取得して設定する方法を ご存知の方アドバイスをお願いします。 | ||||||||
|
投稿日時: 2004-08-05 13:43
JREインストールディレクトリ/libに、font.properties.fooというファイルがあるかと
思います。AWT/Swing等で使用する論理フォント名<->物理フォント名のマッピングを 記述してあるプロパティファイルで、JREはこれを利用して論理フォント名に対応する 物理フォント名を解決しています。 同じような物を作りこんでみるのが妥当な解決策かと思います。 国際化対応をする場合、ロケールに応じて自動的に読み込み対象とするプロパティファイル名 を実行時に変更する仕組み(java.util.ResourcBundle)というものが、JDKには準備されています。調べてみてください。 [ メッセージ編集済み 編集者: シュン 編集日時 2004-08-05 14:25 ] | ||||||||
|
投稿日時: 2004-08-05 18:42
これで論理・物理フォント名は取得できるのですが、、、的をはずしているような、、。 ちなみに、1.4.0のJavaDocには下の記述があります。
ご参考まで。 | ||||||||
|
投稿日時: 2004-08-06 10:50
返信ありがとうございます。
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); Font[] fontList = env.getAllFonts(); で取得できるフォントのgetName()は「DialogInput」などのJavaの論理フォント名ではなく、 プラットフォームで定義されているフォント名が取得できます。 ただし、"MS Gothic"などのロケールに依存しないフォント名は取得できましたので このフォント名からgetFamily()などで取得したロケールごとの"MS ゴシック"などのフォント名に変換をかけようと思います。 とりあえず、Excelに書き込むプログラムなのでこれで国際化はできたのではないかと思います。 | ||||||||
1
