Inspeksi Tabel Font

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 None sebelum mengakses data kerning
  • TtfTableSet.get_raw(tag) dan (b) set_raw(tag, data) adalah alias untuk get_table_bytes / set_table_bytes
  • Penggunaan FontCleaner.clean_for_web() daripada menghapus tabel secara manual untuk menghindari masalah konsistensi

Ringkasan Referensi API

Kelas / MetodeDescription
TtfFont.ttf_tablesAkses 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

See Also

 Bahasa Indonesia