Com treballar amb fonts CFF en Python
CFF (Compact Font Format) és el format de contorns utilitzat dins de fonts OpenType i autònoms. .cff FOSS representa fonts CFF com a CffFont les instàncies, que s’estenen a la la base Font classe i exposar dades específiques de CFF.
Guia de pas a pas
Pas 1: Instal·la el paquet
pip install "aspose-font>=1.0.0"Pas 2: Import de les classes necessàries
from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont
from aspose_font import FontTypePas 3: Carregar una font CFF
Call FontLoader.open() amb el camí cap al teu .cff El fichier retornat és un object de l’arxiu. CffFont instància que exposa el nombre de glifs, nom de font i propietats específiques del CFF:
font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)Pas 4: Accedir als parells de nuclis
Arranca la lletra carregada a CffFont, llavors trucar get_kern_pairs() no totes les fonts CFF contenen dades de kern; comprova la longitud abans d’iterar:
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)}")Pas 5: Convertir CFF en TTF
Passa el carregat. CffFont a la FontConverter.convert() amb: FontType.TTF per produir un nou TtfFont en format de contorns del 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)Problemes comuns i fixos
CffFont has no attribute cff_font — cff_font és una propietat de TtfFont que Retorna dades CFF incrustades, no a la base. Font classe. Per a l’ús de fitxers CFF autònoms CffFont directament.
Parelles de grans buides No totes les fonts CFF contenen dades de parells de nuclis. Comprova amb len(cff_font.get_kern_pairs()) > 0 abans d’iterar.
Preguntes freqüents
Quina és la diferència entre CffFont i TtfFond?
CffFont representa arxius CFF independents. TtfFont representa arxius TTF/OTF; un OTF. pot incorporar un esbós de CFF accessible a través del ttf_font.cff_font.
Puc convertir una font CFF en WOFF2?
Sí, ho sé. FontConverter.convert(font, FontType.WOFF2) funciona amb qualsevol Font instància inclosos: CffFont.