True Type Fontファイルで定義されている実際のグリフがどのUnicode文字にあるかを確認するプロセスを自動化する必要があります。どうやってそれを回避するのですか?テキストエディターで.ttfファイルを開いたときに表示される数値を理解する方法に関する情報が見つからないようです。
python library、 fonttools ( pypi )が見つかりました=pythonスクリプト。
以下は、グリフを指定したすべてのフォントをリストする簡単なスクリプトです。
#!/usr/bin/env python3
from fontTools.ttLib import TTFont
import sys
char = int(sys.argv[1], base=0)
print("Looking for U+%X (%c)" % (char, chr(char)))
for arg in sys.argv[2:]:
try:
font = TTFont(arg)
for cmap in font['cmap'].tables:
if cmap.isUnicode():
if char in cmap.cmap:
print("Found in", arg)
break
except Exception as e:
print("Failed to read", arg)
print(e)
最初の引数はコードポイント(10進数または0xのヘキサ)で、残りは調べるフォントファイルです。
私はそれを.ttc
ファイル(追加のパラメーターがどこかに必要です)。
注:最初にotfinfoツールを試しましたが、基本的な多言語プレーン文字(<= U + FFFF)しか得られませんでした。 pythonスクリプトは、拡張平面文字を検索しますOK。
otfinfo は有望に見えます:
-u, --unicode
Print each Unicode code point supported by the font, followed by
the glyph number representing that code point (and, if present,
the name of the corresponding glyph).
たとえば、DejaVuSans-Boldはfl ligature(fl)を知っています。
$ otfinfo -u /usr/share/fonts/TTF/DejaVuSans-Bold.ttf |grep ^uniFB02
uniFB02 4899 fl