Inspekce tabulky písma

Inspekce tabulky písma

Inspekce tabulky písma

Tato příručka ukazuje, jak číst vlastnosti jmenované tabulky, získat data ze surových binárních tabel a psát upravené byty tabulek zpět do písma TrueType.

Písma TrueType a OpenTyme jsou složeny z binárních tabulek, které jsou označovány štítkem 4 bajtů. TtfTableSet odhalí Pythonové vlastnosti pro běžné tabulky a TtfFont poskytuje: Přístup na všechny tabulky s přímým bajtovým přístupem.


Čtení jmenovaných tabulek

TtfTableSet Vystavuje hlavní, hhea, maxp, os2, jméno, post, cmap, loca, hmtx a kern tabulky.

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)

Čtení surových bytů tabulky

TtfFont.get_table_bytes(tag) Vrátí úplný binární obsah jakékoli tabulky identifikované její štvorznačnou značkou, což umožňuje kontrolu nízké úrovně nebo vlastní analýzu.

ttf_font: TtfFont = FontLoader.open(“Roboto-Regular.ttf”) raw_name = ttf_font.get_table_bytes(“name”) print(f"name table: {len(raw_name)} bytes")


---

### Psaní upravených bytů tabulky

`TtfFont.set_table_bytes(tag, data)` nahrazuje binární obsah tabulky, což umožňuje vlastní úpravy tabuly, jako je například náprava pravidel GSUB nebo aktualizace záznamů jmen.

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..."  # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)

Tipy a nejlepší postupy

  • Check tables.kern is not None před přístupem k datům kerningu,
  • TtfTableSet.get_raw(tag) a) set_raw(tag, data) jsou aliasy pro: get_table_bytes / set_table_bytes
  • Použití: FontCleaner.clean_for_web() místo ručního odstranění tabulek, aby se zabránilo problémům s konzistentností.

Souhrnná referenční informace API

Třída / metodaDescription
TtfFont.ttf_tablesPřístup k vlastnostem jmenované tabulky
TtfFont.get_table_bytes(tag)Číst data ze surové binární tabulky
TtfFont.set_table_bytes(tag, data)Změněné údaje tabulky se zapisují
TtfTableSet.get_raw(tag)Alias pro get_table_bytes
TtfTableSet.set_raw(tag, data)Alias pro set_table_bytes

See Also

 Čeština