Inspecció de la taula de fonts
Inspecció de la taula de fonts
Aquesta guia mostra com llegir propietats de taula amb nom, recuperar dades de la taula binària en bruto i escriure els bytes de taulell modificats a una font TrueType.
Les fonts TrueType i OpenTyme estan compostes de taules binàries, cadascuna identificada per una etiqueta de 4 octets. TtfTableSet exposa propietats anomenades Python per a taules comunes, i TtfFont proporciona: Accés en byte brut per a totes les taules.
Llegir taules amb noms
TtfTableSet Exposar cap, hhea, maxp, os2, nom, post, cmap, loca, hmtx i taules 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)Llegir bits de taula en bruto
TtfFont.get_table_bytes(tag) Retorna el contingut binari complet de qualsevol taula identificada per la seva etiqueta de quatre caràcters, permetent una inspecció a baix nivell o un parseig personalitzat.
ttf_font: TtfFont = FontLoader.open(“Roboto-Regular.ttf”) raw_name = ttf_font.get_table_bytes(“name”) print(f"name table: {len(raw_name)} bytes")
---
### Escriure bytes de taula modificats
`TtfFont.set_table_bytes(tag, data)` substitueix el contingut binari d'una taula, permetent modificacions personalitzades de la taula com ara correccions a les regles GSUB o actualització dels registres de noms.
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..." # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)Consells i millors pràctiques
- Check
tables.kern is not Noneabans d’accedir a les dades de la base. TtfTableSet.get_raw(tag)i de laset_raw(tag, data)són aliases per a:get_table_bytes/set_table_bytes- Utilització:
FontCleaner.clean_for_web()en comptes de eliminar les taules manualment per evitar problemes de coherència.
Resum de referència d’API
| Classe / mètode | Description |
|---|---|
TtfFont.ttf_tables | Propietats de taula amb nom d’accés |
TtfFont.get_table_bytes(tag) | Llegir dades de taula binària en bruto |
TtfFont.set_table_bytes(tag, data) | Escriure dades de taula modificades |
TtfTableSet.get_raw(tag) | Aliases per a get_table_bytes |
TtfTableSet.set_raw(tag, data) | Aliases per set_table_bytes |