Cara Bekerja dengan Font TTF di Python
Panduan ini menunjukkan bagaimana untuk memuat TTF font, memeriksa TtfFont properti, membaca tabel, menginstansiasi font variabel, dan mengubah ke format lain menggunakan Aspose.Font FOSS untuk Python. TrueType fonts (.ttf) adalah format font yang paling umum. Aspose.Font FOSS memuatnya sebagai TtfFont instansi, memberikan akses ke tabel, sumbu font variabel, data glyph, dan utilitas konversi.
Panduan Langkah-Langkah
Langkah 1: Instalasi paket
Instal paket Aspose.Font FOSS dari PyPI menggunakan perintah pip di bawah ini:
pip install "aspose-font>=1.0.0"Langkah 2: Import Kelas yang Diperlukan
Import FontLoader dan (b) TtfFont untuk memuat font TTF dan mengakses sifat tipe:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontLangkah 3: Mengisi dan Memeriksa Font TTF
Mengunggah file TTF menggunakan FontLoader.open() dan membaca sifat dasar seperti nama, keluarga, dan jumlah glyph:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)Langkah 4: Baca tabel inti
Akses ke ttf_tables properti dan memeriksa keberadaan tabel inti dengan nama:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)Langkah 5: Instansi Font Variabel
Mengunggah file font variabel, periksa is_variable, dan menelepon instantiate() dengan kamus sumbu untuk menghasilkan contoh statis:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
static = ttf_font.instantiate({"wght": 700.0})
print("Instantiated:", static.font_name)Langkah 6: Konversi ke WOFF2
Mengkonversi font TTF yang dimuat ke format WOFF2 dengan melewati FontType.WOFF2 ke FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)Masalah dan Fixes Umum
AttributeError: Font has no attribute ttf_tables Penggunaan ttf_font: TtfFont = FontLoader.open(...). Pengelolaan ttf_tables properti adalah pada TtfFont, bukan dasar Font.
is_variable adalah False pada font variabel Beberapa font variabel menggunakan non-standar fvar Format tabel. Periksa ttf_font.fvar is not None sebagai alternatif.
instantiate() kenaikan KeyError Tag sumbu harus menjadi tag 4-char terdaftar (misalnya:. "wght", "wdth") Cek ttf_font.axes untuk tag yang tersedia.
Pertanyaan yang sering ditanya
Apa perbedaan antara TTF dan OTF?
OTF dan TTF berbagi kontainer biner yang sama (SFNT). Font OFT biasanya menggunakan garis besar CFF. sementara font TTF menggunakan kurva kuadrat TrueType. Keduanya dimuat oleh FontLoader.open().
Bisakah saya mendapatkan pasangan kern dari font TTF?
Ya, gunakan. TtfFont.get_kern_pairs() untuk mendapatkan daftar dari KernPair benda-benda.
Apakah perpustakaan mendukung koleksi font (.ttc)?
Ya, gunakan. FontLoader.open(source, collection_index=N) untuk memilih font tertentu dari file pengumpulan TTC.