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 Nonepř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 / metoda | Description |
|---|---|
TtfFont.ttf_tables | Pří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 |