Saya telah menulis appindicator Python3 yang memanggil fortune
dan menangkap output untuk ditampilkan di notifikasi di layar.
Beberapa kekayaan berisi kotak dengan angka heksadesimal saat mesin terbang yang sesuai tidak ada di font saat ini. Setiap kotak adalah representasi dari titik kode Unicode heksadesimal untuk mesin terbang yang hilang.
Saya ingin menghapus teks heksadesimal sebelum saya tampilkan kepada pengguna. Saya berharap untuk menemukan beberapa API Python yang akan membiarkan saya memeriksa teks, karakter demi karakter, untuk menentukan sesuatu seperti char.isValidCodePoint()
atau serupa tetapi saya tidak dapat menemukannya.
Saya menemukan solusi yang mungkin ingin saya selidiki di sini tetapi setelah menginstal fonttools
melalui terminal, program Python saya tidak dapat mengimpor fonttools/fontTools
.
Ada ide - baik menggunakan API Python atau memanggil ke terminal?
Pembaruan # 1: Sejak itu saya menyadari fonttools
kode sampel dari tautan di atas tidak akan berfungsi untuk saya karena itu adalah Python2. Saya kira jika fonttools
entah bagaimana bisa digunakan, saya bisa memanggil juru bahasa Python2 dari skrip Python3 saya.
Pembaruan # 2: Setelah banyak membaca (lihat referensi di bawah), saya telah menemukan fc-match
tetapi tidak selalu dapat mengidentifikasi secara unik font yang digunakan. Saya mendapatkan font saat ini dalam Python:
from gi.repository import Gio
fontName = Gio.Settings( "org.gnome.desktop.interface" ).get_string( "font-name" )
menghasilkan Ubuntu 11
. Melewati hasil ini pango-view
bersamaan dengan karakter heksadesimal, saya mendapatkan daftar font termasuk Ubuntu
. Menurut saya jika mesin terbang TIDAK diterjemahkan oleh font, font tersebut seharusnya tidak muncul dalam hasil dari pango-view
!
Referensi:
Mesin pembuat Unicode
Gunakan mesin pembuat Unicode seperti Harfbuzz untuk mendeteksi mesin terbang yang hilang. Berikut ini contoh kerjanya:
Keluaran
Di sini output di IDLE3 saat memeriksa:
Periksa jalur font yang benar, saya hanya memilih yang pertama saya lihat di mesin saya saat ini.
catatan:
sumber