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 FontTypePaso 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_font — cff_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.