Arbeiten mit TrueType-Schriften

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 auf ttf_tables oder get_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 / MethodeBeschreibung
TtfFont.ttf_tablesZugriff 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.kernKerning-Tabelle (None, falls nicht vorhanden)

Siehe auch

 Deutsch