Como trabalhar com fontes CFF em Python

Como trabalhar com fontes CFF em Python

CFF (Compact Font Format) é o formato de esboço usado dentro das fontes OpenType e standalone .cff FOSS representa fontes CFF como CffFont O Conselho Europeu de Lisboa, em 15 de Dezembro. a base Font classe e expor dados específicos para o CFF.

Guia passo a passo

Passo 1: Instalar o pacote

pip install "aspose-font>=1.0.0"

Passo 2: Importar as classes necessárias

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

Passo 3: Carregar uma fonte CFF

Chama-me . FontLoader.open() com o caminho para a sua .cff O objeto devolvido é um arquivo. CffFont instância que expõe a contagem de glifos, o nome da fonte e as propriedades específicas do CFF:

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

Passo 4: Acesse a pares de núcleos

Coloque a fonte carregada para o código de instruções. CffFont,Então , liga-me . get_kern_pairs() Não todas as fontes CFF contêm dados de núcleo; verifique o comprimento 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)}")

Etapa 5: Converter CFF em TTF

Passe o carregado. CffFont a) para o FontConverter.convert() com: FontType.TTF para produzir um novo TtfFont em formato de contorno da 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 comuns e soluções

CffFont has no attribute cff_fontcff_font é uma propriedade em: TtfFont que … Retorna dados CFF incorporados, não na base. Font Classe: para uso de ficheiros CFF autônomos. CffFont Diretamente.

Pares de grãos vazios Nem todas as fontes CFF contêm dados de pares de núcleos. Verifique com o len(cff_font.get_kern_pairs()) > 0 antes de repetir.

Perguntas Frequentes

Qual é a diferença entre CffFont e TtfFond?

CffFont Representa ficheiros CFF independentes. TtfFont representa ficheiros TTF/OTF; um OTF. Pode incluir um esboço do CFF acessível através da seguinte página: ttf_font.cff_font.

Posso converter uma fonte CFF para WOFF2?

  • Sim, é verdade. FontConverter.convert(font, FontType.WOFF2) funciona com qualquer tipo de Font exemplo incluindo: CffFont.

Ver também:

 Português