Inspeksi Tabel Font
Inspeksi Tabel Font
Panduan ini menunjukkan cara membaca properti tabel yang diberi nama, mengambil data tabel biner mentah, dan menulis byte tabel dimodifikasi kembali ke font TrueType.
Fonts TrueType dan OpenTybe terdiri dari tabel biner, masing-masing diidentifikasi dengan tag 4-byte. TtfTableSet memperlihatkan sifat Python yang disebut untuk tabel umum, dan TtfFont menyediakan Akses byte mentah untuk semua tabel.
Membaca Tabel Bernama
TtfTableSet mengekspos head, hhea, maxp, os2, nama, post, cmap, loca, hmtx, dan kern tabel.
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("head table:", tables.head is not None)
print("kern table:", tables.kern is not None)Membaca Bytes Tabel Raw
TtfFont.get_table_bytes(tag) mengembalikan isi biner lengkap tabel yang diidentifikasi dengan tag empat karakternya, memungkinkan pemeriksaan tingkat rendah atau analisis kustom.
ttf_font: TtfFont = FontLoader.open(“Roboto-Regular.ttf”) raw_name = ttf_font.get_table_bytes(“name”) print(f"name table: {len(raw_name)} bytes")
---
### Menulis Bytes Tabel yang Dimodifikasi
`TtfFont.set_table_bytes(tag, data)` menggantikan isi biner tabel, memungkinkan modifikasi tabel khusus seperti memperbaiki aturan GSUB atau memperbarui catatan nama.
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Tips dan Praktik Terbaik
- Check
tables.kern is not Nonesebelum mengakses data kerning TtfTableSet.get_raw(tag)dan (b)set_raw(tag, data)adalah alias untukget_table_bytes/set_table_bytes- Penggunaan
FontCleaner.clean_for_web()daripada menghapus tabel secara manual untuk menghindari masalah konsistensi
Ringkasan Referensi API
| Kelas / Metode | Description |
|---|---|
TtfFont.ttf_tables | Akses properti tabel yang diberi nama |
TtfFont.get_table_bytes(tag) | Membaca data tabel biner mentah |
TtfFont.set_table_bytes(tag, data) | Menulis data tabel yang dimodifikasi |
TtfTableSet.get_raw(tag) | Alias untuk get_table_bytes |
TtfTableSet.set_raw(tag, data) | Alias untuk set_table_bytes |