Ispezione della tabella dei font

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 None prima di accedere ai dati di kerning
  • TtfTableSet.get_raw(tag) e set_raw(tag, data) sono alias per get_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 / MetodoDescrizione
TtfFont.ttf_tablesAccedi 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

Vedi anche

 Italiano