Com treballar amb fonts CFF en Python

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 FontType

Pas 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_fontcff_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.

See Also

 Català