Tôi đã viết một trình ứng dụng Python3 để gọi fortune
và chụp đầu ra để hiển thị trong thông báo trên màn hình.
Một số vận may chứa hình vuông có số thập lục phân khi glyph tương ứng không tồn tại trong phông chữ hiện tại. Mỗi ô vuông là đại diện của điểm mã thập lục phân cho glyph bị thiếu.
Tôi muốn xóa văn bản thập lục phân trước khi hiển thị cho người dùng. Tôi đã hy vọng tìm thấy một số API Python cho phép tôi kiểm tra văn bản, từng ký tự, để xác định một cái gì đó giống char.isValidCodePoint()
hoặc tương tự nhưng tôi không thể tìm thấy như vậy.
Tôi đã tìm thấy một giải pháp khả thi mà tôi muốn điều tra ở đây nhưng sau khi cài đặt fonttools
qua thiết bị đầu cuối, chương trình Python của tôi không thể nhập fonttools/fontTools
.
Bất kỳ ý tưởng nào - sử dụng API Python hoặc gọi ra thiết bị đầu cuối?
Cập nhật # 1: Tôi đã nhận ra fonttools
mã mẫu từ liên kết ở trên sẽ không hoạt động với tôi vì nó là Python2. Tôi cho rằng nếu fonttools
bằng cách nào đó có thể được sử dụng, tôi có thể gọi trình thông dịch Python2 từ tập lệnh Python3 của mình.
Cập nhật # 2: Sau khi đọc rất nhiều (xem tài liệu tham khảo bên dưới), tôi đã tìm thấy fc-match
nhưng nó không thể luôn xác định duy nhất phông chữ đang sử dụng. Tôi có được phông chữ hiện tại trong Python:
from gi.repository import Gio
fontName = Gio.Settings( "org.gnome.desktop.interface" ).get_string( "font-name" )
dẫn đến Ubuntu 11
. Vượt qua kết quả này pango-view
cùng với ký tự thập lục phân, tôi nhận được một danh sách các phông chữ bao gồm Ubuntu
. Theo suy nghĩ của tôi nếu glyph KHÔNG được hiển thị bởi phông chữ, phông chữ sẽ không xuất hiện trong kết quả từ pango-view
!
Người giới thiệu: