Inspecție tabelă de tipuri

Inspecție tabelă de tipuri

Inspecție tabelă de tipuri

Acest ghid arată cum să citiți proprietățile tabelului numit, să recuperați datele din tabela binară brută și să scrieți baitii de tablă modificați înapoi într-un font TrueType.

Fontele TrueType și OpenTybe sunt compuse din tabele binare, fiecare identificată printr-un tag de 4 biți. TtfTableSet expune proprietățile Python pentru tabele comune și TtfFont oferă: Accesul prin byte brut pentru toate tabelele.


Citirea tabelurilor cu nume

TtfTableSet expuse cap, hhea, maxp, os2, nume, postare, cmap, loca, hmtx și tabele de kern.

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)

Citirea bațelor de tabel brută

TtfFont.get_table_bytes(tag) returnă conținutul binar complet al oricărei tabele identificate prin eticheta de patru caractere, permițând inspecția la nivel scăzut sau analizarea personalizată.

from aspose_font.loader import FontLoader
from aspose_font.ttf.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")

Scrierea de byte ale tabelului modificate

TtfFont.set_table_bytes(tag, data) înlocuiește conținutul binar al unei tabele, permițând modificări personalizate ale tabelului, cum ar fi parchetarea regulilor GSUB sau actualizarea înregistrărilor de nume.

from aspose_font.loader import FontLoader
from aspose_font.ttf.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)

Sfaturi şi cele mai bune practici

  • Verifică. tables.kern is not None înainte de accesarea datelor coreing
  • TtfTableSet.get_raw(tag) și de: set_raw(tag, data) Sunt aliasuri pentru: get_table_bytes / set_table_bytes
  • Utilizare: FontCleaner.clean_for_web() mai degrabă decât eliminarea manuală a tabelurilor pentru a evita problemele de coerență

Rezultatele de la data aplicării.

Clasa / metodaDescriere:
TtfFont.ttf_tablesProprietăți ale tabelului numit de acces
TtfFont.get_table_bytes(tag)Citeste datele din tabela binara brute.
TtfFont.set_table_bytes(tag, data)Scrie date de tabel modificate
TtfTableSet.get_raw(tag)Alias pentru get_table_bytes
TtfTableSet.set_raw(tag, data)Alias pentru set_table_bytes

Vezi și:

 Română