日本語フォントの一覧作成 ― 2018年02月24日 08:47
Windows10で新しい日本語フォントも登場したこともあり、日本語フォントを確認できるツールを用意しようと思い立つ。いつまでも「文字コード表」の小さな画面とにらめっこするのも芸がない。
ところが、UWPで使える.NETでは、フォントの取得はままならない。FontFamilyのclassもプロパティが2つだけ。そこで、nugetでWin2Dを導入する。
CanvasTextFormatのGetSystemFontFamiliesもあるが、ここでは、CanvasFontSetのGetSystemFontSetを使う(行39)。Fontsプロパティが、CanvasFontFaceで、ここからHasCharacterを使って、文字コードのあるなしを判定できる。
動かしてみると、日本語のフォント一覧が取得できたようだが、何か足りない。Windowsが標準で利用する"Yu Gothic UI"などが入っていない。
CanvasFontFaceのFamilyNamesやFaceNamesはDictionaryになっており、言語を表すキー別に複数保持できるようになっている。当然、日本語フォントは、"ja-jp"だろうと思っていたら、"Yu Gothic UI"は、"en-us"。
結局、両方をチェックすることで(最初の図、行74)、"Yu Gothic UI"を取り出すことができる。副作用として、一部の中華系のフォントも入ってくる。ひらかな、カタカナ、漢字の代表を決めて、HasCharacterで判定をしているが、中華系のフォントにも、カナ文字のコードが割り当ててあり、判別できない。
最近のコメント