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 / metoda | Descriere: |
|---|---|
TtfFont.ttf_tables | Proprietăț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 |