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 FontTypePasso 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_font — cff_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 deFontexemplo incluindo:CffFont.