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 FontTypePasso 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.