fortune화면 알림에 표시하기 위해 출력을 호출 하고 캡처 하는 Python3 appindicator를 작성했습니다 .
현재 글꼴에 해당 글리프가없는 경우 일부 운에는 16 진수로 된 사각형이 포함됩니다. 각 사각형은 누락 된 글리프에 대한 16 진수 유니 코드 코드 포인트를 나타냅니다.
사용자에게 표시하기 전에 16 진 텍스트를 제거하고 싶습니다. 문자별로 문자를 검사하여 비슷 char.isValidCodePoint()하거나 비슷한 것을 결정할 수있는 Python API를 찾고 있었지만 찾을 수는 없었습니다.
여기 에서 조사하고 싶은 가능한 해결책을 찾았 지만 fonttools터미널을 통해 설치 한 후 Python 프로그램을 가져올 수 없습니다 fonttools/fontTools.
파이썬 API를 사용하거나 터미널을 호출하는 아이디어가 있습니까?
업데이트 # 1 : 이후 fonttoolsPython2이므로 위 링크 의 샘플 코드가 작동하지 않는다는 것을 깨달았습니다 . fonttools어떻게 든 사용할 수 있다면 Python3 스크립트에서 Python2 인터프리터를 호출 할 수 있다고 가정합니다 .
업데이트 # 2 : 많은 독서 후 (아래 참조 참조) 이후 발견 fc-match했지만 사용중인 글꼴을 항상 고유하게 식별 할 수는 없습니다 . 파이썬에서 현재 글꼴을 얻습니다.
from gi.repository import Gio
fontName = Gio.Settings( "org.gnome.desktop.interface" ).get_string( "font-name" )
결과 Ubuntu 11. 이 결과를 pango-view16 진수 문자와 함께 전달하면을 포함한 글꼴 목록이 나타납니다 Ubuntu. 글꼴에 의해 글리프가 렌더링되지 않았다면 내 생각에 글꼴이 나타나지 않아야합니다 pango-view!
참고 문헌 :