fontforge でフォントのサブセットを生成する

M+Web FONTS Subsetter みたいなことを手元でやりたくなったので fontforge 用の Python スクリプトを書いた。

使い方

上記ファイルに適切な実行権限を与えた後、

./genwebfonts.py *.ttf output

とすると必要なグリフのみを含んだフォント (ttf, woff, eot) が output ディレクトリに一括生成される。

codepoints = [(0x0000, 0x03FF), (0x2200, 0x22FF)]  

の部分で U+0000 - U+03FF と U+2200 - U+22FF までの文字を含んだフォントを生成するよう指定している。

codepoints = [(u'ぁ', u'ゟ'), u'、。!?']  

とすると、ひらがなと句読点のみを含んだフォントが生成される。

コードポイントについては、

等のページを参考にすると良さげ。

fontforge の Python コードについて

バージョンは Python 2 系であることに注意(str 型と unicode 型の区別が必要)。

Writing python scripts to change fonts in FontForge が公式のドキュメント。Koruri フォントの生成スクリプトが非常に参考になる。