Arbeiten mit TrueType-Schriften
Arbeiten mit TrueType-Schriften
Dieses Handbuch zeigt, wie man TrueType-Schriften lädt, deren binäre Tabellendaten inspiziert, rohe Tabellendaten liest und statische Instanzen aus variablen Schriften mit TtfInstancer erstellt.
TrueType (TTF)-Schriften sind das am häufigsten verwendete Desktop- und Web-Schriftformat. Aspose.Font FOSS für Python bietet TtfFont zum Zugriff auf TTF-spezifische Tabellendaten, Glyph-Blob-Abruf und die Steuerung von Achsen variabler Schriften.
Laden einer TTF-Schrift
FontLoader.open() erkennt das TTF-Format automatisch und gibt ein TtfFont-typisiertes Objekt zurück. Die zurückgegebene Instanz bietet Zugriff auf TTF-spezifische Funktionen wie ttf_tables, get_table_bytes() und Daten zu Achsen variabler Schriften.
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")Zugriff auf TTF-Tabellen
TtfFont.ttf_tables stellt ein TtfTableSet mit benannten Eigenschaften für gängige Tabellen 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("kern table present:", tables.kern is not None)Rohtabellenbytes
Verwenden Sie TtfFont.get_table_bytes(tag), um Roh-Binärtabellendaten abzurufen, und TtfFont.set_table_bytes(tag, data), um modifizierte Tabellenbytes zu schreiben.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_cmap = ttf_font.get_table_bytes("cmap")Variable Schriftinstanzen
TtfFont.get_axis(tag) gibt eine einzelne variable Achse anhand ihres 4-Zeichen-Tags zurück (z.B. "wght", "wdth") oder None, wenn die Schriftart diese Achse nicht definiert. TtfInstancer.instantiate() erzeugt eine statische Instanz aus einer variablen Schriftart bei angegebenen Achsenkoordinaten.
from aspose_font import FontLoader
from aspose_font import TtfFont
from aspose_font.ttf.instancer import TtfInstancer # internal API — may change between releases
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
weight_axis = ttf_font.get_axis("wght")
if weight_axis is not None:
print(f"wght range: {weight_axis.min_value}-{weight_axis.max_value}")
# Get a static instance at wght=700, wdth=75
instance = TtfInstancer.instantiate(ttf_font, {"wght": 700.0, "wdth": 75.0})Tipps und bewährte Vorgehensweisen
- Verwenden Sie stets
isinstance(font, TtfFont), bevor Sie aufttf_tablesoderget_table_bytes()zugreifen. - Verwenden Sie
TtfTableSet.kern, um die Verfügbarkeit von Kerning zu prüfen, bevor Sie Kerning-Paare lesen. - Das Instanziieren einer variablen Schrift erzeugt ein neues Schriftobjekt; das Original bleibt unverändert.
API Reference Zusammenfassung
| Klasse / Methode | Beschreibung |
|---|---|
TtfFont.ttf_tables | Zugriff auf TTF-Tabellensatz |
TtfFont.get_table_bytes(tag) | Rohbytes für eine benannte Tabelle |
TtfFont.set_table_bytes(tag, data) | Modifizierte Tabellbytes schreiben |
TtfFont.get_axis(tag) | Variable Font-Achse nach Tag, oder None |
TtfInstancer.instantiate(font, coords) | Statische Instanz erstellen |
TtfTableSet.kern | Kerning-Tabelle (None, falls nicht vorhanden) |