fortune
画面上の通知に表示するために出力を呼び出してキャプチャするPython3 appindicatorを作成しました。
現在のフォントに対応するグリフが存在しない場合、一部のフォーチュンには16進数の正方形が含まれます。各四角は、不足しているグリフの16進Unicodeコードポイントを表しています。
ユーザーに表示する前に、16進テキストを削除したいのですが。私は、テキストを文字ごとに検査して、char.isValidCodePoint()
類似または類似のものを判別できるいくつかのPython APIを見つけたいと思っていましたが、そのように見つけることはできません。
ここで調査したい解決策が見つかりましたがfonttools
、ターミナルからインストールした後、Pythonプログラムをインポートできませんでしたfonttools/fontTools
。
任意のアイデア-Python APIを使用するか、ターミナルを呼び出すか?
アップデート#1:fonttools
上記のリンクからのサンプルコードはPython2であるため機能しないことに気づきました。fonttools
どういうわけか使用できたら、Python3スクリプトからPython2インタープリターを呼び出すことができると思います。
更新#2:たくさん読んだ後(下記の参考文献を参照)、私はそれ以降見つけましたfc-match
が、使用中のフォントを常に一意に特定できるわけではありません。Pythonで現在のフォントを取得します。
from gi.repository import Gio
fontName = Gio.Settings( "org.gnome.desktop.interface" ).get_string( "font-name" )
結果としてUbuntu 11
。この結果をpango-view
16進文字とともに渡すと、を含むフォントのリストが表示されますUbuntu
。グリフがフォントによってレンダリングされなかった場合、私の考えでは、フォントはpango-view
!の結果に表示されるべきではありません。
参照: