Untersuchung der Schrifttabelle

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 None bevor Sie auf Kerning-Daten zugreifen
  • TtfTableSet.get_raw(tag) und set_raw(tag, data) sind Aliase für get_table_bytes / set_table_bytes
  • Verwenden Sie FontCleaner.clean_for_web() anstatt Tabellen manuell zu entfernen, um Konsistenzprobleme zu vermeiden

API Reference Zusammenfassung

Klasse / MethodeBeschreibung
TtfFont.ttf_tablesZugriff 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

Siehe auch

 Deutsch