TTF 파일에 정의된 유니코드 코드 포인트를 찾는 방법은 무엇입니까?

TTF 파일에 정의된 유니코드 코드 포인트를 찾는 방법은 무엇입니까?

트루타입 글꼴 파일에 정의된 실제 글리프가 있는 유니코드 문자를 자동으로 확인해야 합니다. 어떻게 해야 하나요? 텍스트 편집기에서 .ttf 파일을 열 때 나타나는 숫자를 이해하는 방법에 대한 정보를 찾을 수 없는 것 같습니다.

답변1

오르펜 정보유망해 보입니다:

-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 합자(fl)를 알고 있습니다.

$ otfinfo -u /usr/share/fonts/TTF/DejaVuSans-Bold.ttf |grep ^uniFB02
uniFB02 4899 fl

답변2

Python 라이브러리를 찾았습니다.글꼴 도구(삐삐) 이는 일부 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)

첫 번째 인수는 코드 포인트(0x가 있는 10진수 또는 16진수)이고 나머지는 찾을 글꼴 파일입니다.

파일 에 대해 작동하도록 만들려고 노력하지 않았습니다 .ttc(몇 가지 추가 매개변수가 필요함).

참고: 먼저 otfinfo 도구를 사용해 보았지만 기본 다국어 단순 문자(<= U+FFFF)만 얻었습니다. Python 스크립트는 일반적으로 확장된 일반 문자를 찾을 수 있습니다.

답변3

간단히:

fc-match --format='%{charset}\n' "DejaVu Sans Mono"

관련 정보