Ispezione della tabella dei font
Ispezione delle tabelle dei font
Questa guida mostra come leggere le proprietà delle tabelle nominate, recuperare i dati binari grezzi delle tabelle e scrivere i byte della tabella modificati nuovamente in un font TrueType.
TrueType e OpenType sono font composti da tabelle binarie, ciascuna identificata da un tag a 4 byte. TtfTableSet espone le proprietà Python nominate per le tabelle comuni, e TtfFont fornisce l’accesso ai byte grezzi per tutte le tabelle.
Lettura delle tabelle nominate
TtfTableSet espone le tabelle head, hhea, maxp, os2, name, post, cmap, loca, hmtx e kern.
from aspose_font import FontLoader
from aspose_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)Lettura dei byte grezzi della tabella
TtfFont.get_table_bytes(tag) restituisce il contenuto binario completo di qualsiasi tabella identificata dal suo tag a quattro caratteri, consentendo un’ispezione a basso livello o un parsing personalizzato.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_name = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw_name)} bytes")Scrittura dei byte della tabella modificata
TtfFont.set_table_bytes(tag, data) sostituisce il contenuto binario di una tabella, consentendo modifiche personalizzate della tabella, come il patching delle regole GSUB o l’aggiornamento dei record name.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Suggerimenti e migliori pratiche
- Controlla
tables.kern is not Noneprima di accedere ai dati di kerning TtfTableSet.get_raw(tag)eset_raw(tag, data)sono alias perget_table_bytes/set_table_bytes- Usa
FontCleaner.clean_for_web()invece di rimuovere manualmente le tabelle per evitare problemi di coerenza
Riepilogo di API Reference
| Classe / Metodo | Descrizione |
|---|---|
TtfFont.ttf_tables | Accedi alle proprietà della tabella denominata |
TtfFont.get_table_bytes(tag) | Leggi i dati binari grezzi della tabella |
TtfFont.set_table_bytes(tag, data) | Scrivi i dati della tabella modificati |
TtfTableSet.get_raw(tag) | Alias per get_table_bytes |
TtfTableSet.set_raw(tag, data) | Alias per set_table_bytes |