Untersuchung der Schrifttabelle
Schrifttabellen-Inspektion
Dieser Leitfaden zeigt, wie man benannte Tabelleneigenschaften liest, rohe binäre Tabellendaten abruft und modifizierte Tabellbytes zurück in eine TrueType-Schrift schreibt.
TrueType und OpenType Schriften bestehen aus binären Tabellen, die jeweils durch ein 4-Byte-Tag identifiziert werden. TtfTableSet stellt benannte Python-Eigenschaften für gängige Tabellen bereit, und TtfFont bietet rohen Byte-Zugriff für alle Tabellen.
Lesen benannter Tabellen
TtfTableSet stellt die Tabellen head, hhea, maxp, os2, name, post, cmap, loca, hmtx und kern bereit.
from aspose_font import FontLoader
from aspose_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)Lesen roher Tabellbytes
TtfFont.get_table_bytes(tag) gibt den vollständigen binären Inhalt jeder Tabelle zurück, die durch ihr vierzeichenlanges Tag identifiziert wird, und ermöglicht eine Low-Level-Inspektion oder benutzerdefinierte Analyse.
from aspose_font import FontLoader
from aspose_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")Schreiben modifizierter Tabellenbytes
TtfFont.set_table_bytes(tag, data) ersetzt den binären Inhalt einer Tabelle und ermöglicht benutzerdefinierte Tabellenmodifikationen wie das Patchen von GSUB-Regeln oder das Aktualisieren von Namensdatensätzen.
from aspose_font import FontLoader
from aspose_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)Tipps und bewährte Verfahren
- Überprüfen Sie
tables.kern is not Nonebevor Sie auf Kerning-Daten zugreifen TtfTableSet.get_raw(tag)undset_raw(tag, data)sind Aliase fürget_table_bytes/set_table_bytes- Verwenden Sie
FontCleaner.clean_for_web()anstatt Tabellen manuell zu entfernen, um Konsistenzprobleme zu vermeiden
API Reference Zusammenfassung
| Klasse / Methode | Beschreibung |
|---|---|
TtfFont.ttf_tables | Zugriff auf benannte Tabelleneigenschaften |
TtfFont.get_table_bytes(tag) | Rohdaten der Binärtabelle lesen |
TtfFont.set_table_bytes(tag, data) | Modifizierte Tabellendaten schreiben |
TtfTableSet.get_raw(tag) | Alias für get_table_bytes |
TtfTableSet.set_raw(tag, data) | Alias für set_table_bytes |