概要
ttfファイルから利用可能な文字とそのUnicode符号の一覧を抽出します。
ユースケース
- ImageMagickなどでアイコンフォントから画像を生成したいが、アイコンに対応するUnicode符号がわからない。
- OSXのFontbookなどで各文字のUnicode符号は閲覧できるが、一覧が取得できずに困っている。
インストール
pip install fonttools
使い方
ttx -t cmap [フォント名.ttf]
フォント名.ttxが出力されます。
例
GitHubのアイコンフォントOcticonsで使ってみます。
実行
ttx -t cmap octicons.ttf
出力例
code
の0x
の後ろがUnicode符号のU+
の後ろの部分です。name
がどのアイコンに対応するかはWebでocticons.css
使う際の説明を見るとわかります。
<?xml version="1.0" encoding="ISO-8859-1"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="2.4">
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x0" name=".notdef"/><!-- <control> -->
<map code="0x2665" name="heart"/><!-- BLACK HEART SUIT -->
<map code="0x26a1" name="zap"/><!-- HIGH VOLTAGE SIGN -->
<map code="0xf000" name="light-bulb"/><!-- Private Use -->
<map code="0xf001" name="repo"/><!-- Private Use -->
<map code="0xf002" name="repo-forked"/><!-- Private Use -->
<map code="0xf005" name="repo-push"/><!-- Private Use -->
<map code="0xf006" name="repo-pull"/><!-- Private Use -->
略
<map code="0xf0d4" name="plug"/><!-- Private Use -->
<map code="0xf0d6" name="circuit-board"/><!-- Private Use -->
<map code="0xf0d7" name="mortar-board"/><!-- Private Use -->
<map code="0xf0d8" name="law"/><!-- Private Use -->
<map code="0xf27c" name="device-desktop"/><!-- Private Use -->
</cmap_format_4>
</cmap>
</ttFont>
- FontTools(ttx)はフォントテーブルの置き換えもできます。Octiconsはアイコンが普段使わない文字にマップされているのでアルファベットなど入力しやすい文字に置き換えるとImageMagickでの取り扱いが楽かもしれません。
その他
PythonやRubyでも取得できるようです。