Cómo trabajar con Fonts CFF en Python

Cómo trabajar con Fonts CFF en Python

CFF (Compact Font Format) es el formato de salida utilizado dentro de las fuentes OpenType y standalone. .cff FOSS representa las fuentes CFF como CffFont Los casos, que se extenden La base Font -Clases y expone datos específicos de CFF.

Guía paso a paso

Paso 1: Instalar el paquete

pip install "aspose-font>=1.0.0"

Paso 2: Importar las clases necesarias

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

Paso 3: Cargar una font CFF

llamadas FontLoader.open() Con el camino hacia tu .cff El objeto de la entrega es un CffFont La instancia que exponga el número de glyph, nombre de fontos y propiedades específicas del CFF:

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

Paso 4: Acceso a los pares de núcleos

Cortes de la fontada cargada a CffFont,Y luego llamar get_kern_pairs() No todas las fuentes de CFF contienen datos del núcleo; verifique la longitud antes de 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)}")

Paso 5: Convertir CFF en TTF

Pasar el cargado CffFont para FontConverter.convert() con FontType.TTF para producir una nueva TtfFont En formato de salida 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)

Problemas y soluciones comunes

CffFont has no attribute cff_fontcff_font Es una propiedad en TtfFont que ese devolver los datos CFF incorporados, no en la base Font Para el uso de archivos CFF independientes CffFont directamente .

Cuerpos de núcleo vacío — No todas las fuentes de CFF contienen datos de pareja de núcleo. len(cff_font.get_kern_pairs()) > 0 Antes de iterar.

Preguntas frecuentes

¿Cuál es la diferencia entre CffFont y TtfFon?

CffFont Representa los archivos de CFF. TtfFont Representa los archivos TTF/OTF; un OTF puede incorporar una salida de CFF accesible a través de ttf_font.cff_font.

¿Puedo convertir una letra CFF en WOFF2?

Sí sí. FontConverter.convert(font, FontType.WOFF2) Trabajando con cualquier Font instancia incluye CffFont.

Ver también

 Español