Wie man mit TTF-Schriften in Python arbeitet

Wie man mit TTF-Schriften in Python arbeitet

Dieser Leitfaden zeigt, wie man TTF-Schriften lädt, TtfFont-Eigenschaften inspiziert, Tabellen ausliest, variable Schriften instanziiert und mit Aspose.Font FOSS für Python in andere Formate konvertiert. TrueType-Schriften (.ttf) sind das gebräuchlichste Schriftformat. Aspose.Font FOSS lädt sie als TtfFont-Instanzen, wodurch Zugriff auf Tabellen, Achsen variabler Schriften, Glyphendaten und Konvertierungswerkzeuge gewährt wird.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

Installieren Sie das Aspose.Font FOSS-Paket mit dem untenstehenden Befehl:

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Schritt 2: Erforderliche Klassen importieren

Importieren Sie FontLoader und TtfFont, um eine TTF-Schrift zu laden und auf ihre typisierten Eigenschaften zuzugreifen:

from aspose_font import FontLoader
from aspose_font import TtfFont

Schritt 3: TTF-Schrift laden und inspizieren

Lade eine TTF-Datei mit FontLoader.open() und lese grundlegende Eigenschaften wie Name, Familie und Glyphenanzahl:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)

Schritt 4: Die kern-Tabelle lesen

Greife auf die ttf_tables-Eigenschaft zu und prüfe, ob die kern-Tabelle anhand ihres Namens vorhanden ist:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)

Schritt 5: Variable Font instanziieren

Lade eine Variable-Font-Datei, prüfe is_variable und rufe instantiate() mit einem Achsen-Dictionary auf, um eine statische Instanz zu erzeugen:

from aspose_font import FontLoader
from aspose_font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
    static = ttf_font.instantiate({"wght": 700.0})
    print("Instantiated:", static.font_name)

Schritt 6: In WOFF2 konvertieren

Konvertiere eine geladene TTF-Schrift in das WOFF2-Format, indem du FontType.WOFF2 an FontConverter.convert() übergibst:

from aspose_font import FontLoader
from aspose_font.converter import FontConverter  # internal API — may change between releases
from aspose_font import FontType

font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)

Häufige Probleme und Lösungen

AttributeError: Font has no attribute ttf_tables — Verwenden ttf_font: TtfFont = FontLoader.open(...). Der ttf_tables Eigenschaft ist auf TtfFont, nicht die Basis Font.

is_variable ist False bei einer variablen Schriftart — Einige variable Schriften verwenden ein nicht-standard fvar Tabellenformat. Prüfen ttf_font.fvar is not None als Alternative.

instantiate() raises KeyError — Das Achsen-Tag muss ein registriertes 4-Zeichen-Tag sein (z.B. "wght", "wdth"). Prüfen ttf_font.axes für verfügbare Tags.

Häufig gestellte Fragen

Was ist der Unterschied zwischen TTF und OTF?

OTF und TTF verwenden denselben binären Container (SFNT). OTF-Schriften verwenden typischerweise CFF-Umrisse, während TTF-Schriften TrueType quadratische Kurven benutzen. Beide werden von FontLoader.open() geladen.

Kann ich Kerning-Paare aus einer TTF-Schrift erhalten?

Ja. Verwende TtfFont.get_kern_pairs(), um eine Liste von KernPair-Objekten zu erhalten.

Unterstützt die Bibliothek Schriftensammlungen (.ttc)?

Ja. Verwende FontLoader.open(source, collection_index=N), um eine bestimmte Schrift aus einer TTC-Sammlungsdatei auszuwählen.

Siehe auch

 Deutsch