日本語フォントの一覧作成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"などが入っていない。

Debug出力

CanvasFontFaceのFamilyNamesやFaceNamesはDictionaryになっており、言語を表すキー別に複数保持できるようになっている。当然、日本語フォントは、"ja-jp"だろうと思っていたら、"Yu Gothic UI"は、"en-us"。

結局、両方をチェックすることで(最初の図、行74)、"Yu Gothic UI"を取り出すことができる。副作用として、一部の中華系のフォントも入ってくる。ひらかな、カタカナ、漢字の代表を決めて、HasCharacterで判定をしているが、中華系のフォントにも、カナ文字のコードが割り当ててあり、判別できない。