Come utilizzare i font CFF in Python

Come utilizzare i font CFF in Python

CFF (Compact Font Format) è il formato di contorno utilizzato all’interno dei caratteri OpenType e nei file .cff autonomi. Aspose.Font FOSS rappresenta i caratteri CFF come istanze CffFont, che estendono la classe base Font e espongono i dati specifici di CFF.

Guida passo-passo

Passo 1: Installa il pacchetto

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

Passo 2: Importa le classi richieste

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

Passo 3: Carica un carattere CFF

Chiama FontLoader.open() con il percorso del tuo file .cff. L’oggetto restituito è un’istanza CffFont che espone il conteggio dei glifi, il nome del font e le proprietà specifiche di CFF:

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

Passo 4: Accedi alle coppie di kern

Esegui il cast del font caricato a CffFont, quindi chiama get_kern_pairs() per recuperare l’elenco dei record delle coppie di kern. Non tutti i font CFF contengono dati di kern; controlla la lunghezza prima di iterare:

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

Passo 5: Converti CFF in TTF

Passa il CffFont caricato a FontConverter.convert() con FontType.TTF per produrre un nuovo TtfFont in formato contorno TTF:

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)

Problemi comuni e soluzioni

CffFont has no attribute cff_font — cff_font è una proprietà su TtfFont che restituisce dati CFF incorporati, non sulla base Font classe. Per i file CFF autonomi usa CffFont direttamente.

Coppie di kern vuote — Non tutti i font CFF contengono dati di coppie di kern. Verifica con len(cff_font.get_kern_pairs()) > 0 prima di iterare.

Domande frequenti

Qual è la differenza tra CffFont e TtfFont?

CffFont rappresenta file CFF autonomi. TtfFont rappresenta file TTF/OTF; un OTF può includere un contorno CFF accessibile tramite ttf_font.cff_font.

Posso convertire un font CFF in WOFF2?

Sì. FontConverter.convert(font, FontType.WOFF2) funziona con qualsiasi istanza di Font, incluso CffFont.

Vedi anche

 Italiano