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-view16進文字とともに渡すと、を含むフォントのリストが表示されますUbuntu。グリフがフォントによってレンダリングされなかった場合、私の考えでは、フォントはpango-view!の結果に表示されるべきではありません。
参照: