Hoe te werken met CFF-lettertypen in Python

Hoe te werken met CFF-lettertypen in Python

CFF (Compact Font Format) is het outline-formaat dat wordt gebruikt in OpenType-lettertypen en zelfstandige .cff-bestanden. Aspose.Font FOSS vertegenwoordigt CFF-lettertypen als CffFont-instanties, die de basis Font-klasse uitbreiden en CFF-specifieke gegevens blootleggen.

Stapsgewijze handleiding

Stap 1: Installeer het pakket

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

Stap 2: Importeer vereiste klassen

from aspose_font import FontLoader
from aspose_font import CffFont
from aspose_font import FontType

Stap 3: Laad een CFF-lettertype

Roep FontLoader.open() aan met het pad naar uw .cff-bestand. Het geretourneerde object is een CffFont-instantie die het aantal glyphs, de fontnaam en CFF-specifieke eigenschappen blootlegt:

font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)

Stap 4: Toegang tot kernparen

Cast het geladen lettertype naar CffFont, roep vervolgens get_kern_pairs() aan om de lijst met kernpaar-records op te halen. Niet alle CFF-lettertypen bevatten kern-data; controleer de lengte voordat u iterereert:

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)}")

Stap 5: Converteer CFF naar TTF

Geef het geladen CffFont door aan FontConverter.convert() met FontType.TTF om een nieuwe TtfFont in TTF-outlineformaat te produceren:

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)

Veelvoorkomende problemen en oplossingen

CffFont has no attribute cff_font — cff_font is een eigenschap van TtfFont die ingebedde CFF-gegevens retourneert, niet op de basis Font klasse. Voor zelfstandige CFF-bestanden gebruik CffFont direct.

Lege kerningparen — Niet alle CFF-lettertypen bevatten kerningpaargegevens. Controleer met len(cff_font.get_kern_pairs()) > 0 voordat u iteraties uitvoert.

Veelgestelde vragen

Wat is het verschil tussen CffFont en TtfFont?

CffFont staat voor zelfstandige CFF-bestanden. TtfFont staat voor TTF/OTF-bestanden; een OTF kan een CFF-outline bevatten die toegankelijk is via ttf_font.cff_font.

Kan ik een CFF-lettertype converteren naar WOFF2?

Ja. FontConverter.convert(font, FontType.WOFF2) werkt met elke Font-instantie, inclusief CffFont.

Zie ook

 Nederlands