Comment travailler avec des fonts CFF dans Python

Comment travailler avec des fonts CFF dans Python

CFF (Compact Font Format) est le format de sortie utilisé dans les fonctions OpenType et indépendamment. .cff fichiers. Aspose.Font FOSS représente les phares CFF comme CffFont Les cas qui étendent La base Font - Classement et exposer les données spécifiques à la CFF.

Guide étape par étapes

Étape 1 : Installer le package

pip install "aspose-font>=1.0.0"

Étape 2 : Importation des classes requises

from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont
from aspose_font import FontType

Étape 3 : Remplissez un fichier CFF

Appel à FontLoader.open() Le chemin vers votre .cff L’objet retourné est un CffFont Exposant le nombre de glyphes, le nom du phon et les propriétés spécifiques à la CFF :

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

Étape 4 : Accès aux paires de noyau

Mettre le font chargé à CffFont,Et puis appeler get_kern_pairs() Pour obtenir la liste des dossiers de couple de noyau. pas toutes les phares CFF contiennent des données du noyé ; vérifiez la longueur avant d’itérer :

from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont

cff_font: CffFont = FontLoader.open("MyFont.cff")
kern_pairs = cff_font.get_kern_pairs()
print(f"kern pairs: {len(kern_pairs)}")

Étape 5 : Convertir le CFF en TTF

Passez le chargé CffFont à FontConverter.convert() avec FontType.TTF Pour produire un nouveau TtfFont Dans le format de la TTF :

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType

font = FontLoader.open("MyFont.cff")
ttf = FontConverter.convert(font, FontType.TTF)

Problèmes communs et fixations

CffFont has no attribute cff_fontcff_font Il s’agit d’une propriété sur TtfFont Ce qui Remboursent les données CFF intégrées, pas sur la base Font Class. pour l’utilisation de fichiers CFF indépendants CffFont directement .

Couples de noyaux vides — Tous les phontres CFF ne contiennent pas de données par couple cernel. len(cff_font.get_kern_pairs()) > 0 avant de l’itération.

Questions fréquemment posées

Quelle est la différence entre CffFont et TtfFon?

CffFont Il représente des fichiers CFF. TtfFont Représentant des fichiers TTF/OTF; un OTF peut intégrer une outline CFF accessible par le biais de ttf_font.cff_font.

Puis-je convertir un fichier CFF en WOFF2 ?

Oui oui. FontConverter.convert(font, FontType.WOFF2) Travailler avec n’importe quel Font instance incluant CffFont.

Voir aussi

 Français