Wie man mit CFF-Schriften in Python arbeitet
CFF (Compact Font Format) ist das Outline-Format, das in OpenType-Schriften und eigenständigen .cff-Dateien verwendet wird. Aspose.Font FOSS stellt CFF-Schriften als CffFont-Instanzen dar, die die Basisklasse Font erweitern und CFF-spezifische Daten bereitstellen.
Schritt-für-Schritt-Anleitung
Schritt 1: Paket installieren
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
from aspose_font import FontLoader
from aspose_font import CffFont
from aspose_font import FontTypeSchritt 3: Eine CFF-Schrift laden
Rufen Sie FontLoader.open() mit dem Pfad zu Ihrer .cff-Datei auf. Das zurückgegebene Objekt ist eine CffFont-Instanz, die die Glyphenanzahl, den Schriftartnamen und CFF-spezifische Eigenschaften bereitstellt:
font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)Schritt 4: Zugriff auf Kern-Paare
Wandeln Sie die geladene Schrift in CffFont um, rufen Sie dann get_kern_pairs() auf, um die Liste der Kern-Paar-Datensätze zu erhalten. Nicht alle CFF-Schriften enthalten Kern-Daten; prüfen Sie die Länge, bevor Sie iterieren:
from aspose_font import FontLoader
from aspose_font import CffFont
cff_font: CffFont = FontLoader.open("MyFont.cff")
kern_pairs = cff_font.get_kern_pairs()
print(f"kern pairs: {len(kern_pairs)}")Schritt 5: CFF in TTF konvertieren
Übergeben Sie das geladene CffFont an FontConverter.convert() zusammen mit FontType.TTF, um ein neues TtfFont im TTF-Umrissformat zu erzeugen:
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("MyFont.cff")
ttf = FontConverter.convert(font, FontType.TTF)Häufige Probleme und Lösungen
CffFont has no attribute cff_font — cff_font ist eine Eigenschaft von TtfFont die eingebettete CFF-Daten zurückgibt, nicht in der Basisklasse Font Klasse. Für eigenständige CFF-Dateien verwenden Sie CffFont direkt.
Leere Kern-Paare — Nicht alle CFF-Schriften enthalten Kern-Paar-Daten. Prüfen Sie mit len(cff_font.get_kern_pairs()) > 0 vor dem Durchlaufen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen CffFont und TtfFont?
CffFont steht für eigenständige CFF-Dateien. TtfFont steht für TTF/OTF-Dateien; ein OTF kann ein CFF-Outline einbetten, das über ttf_font.cff_font zugänglich ist.
Kann ich eine CFF-Schriftart in WOFF2 konvertieren?
Ja. FontConverter.convert(font, FontType.WOFF2) funktioniert mit jeder Font-Instanz, einschließlich CffFont.