Como trabalhar com fontes TTF em Python

Como trabalhar com fontes TTF em Python

Este guia mostra como carregar fontes TTF, inspecionar TtfFont propriedades, leitura de tabelas, instanciar fontes variáveis e converter para outros formatos usando Aspose.Font FOSS for Python. TrueType fonts (.ttf) são os formatos de fonte mais comuns. Aspose.Font FOSS carrega-los como TtfFont instâncias, dando acesso a tabelas, eixos de fonte variável, dados de glifos e utilitários de conversão.

Guia passo a passo

Passo 1: Instalar o pacote

Instale o pacote Aspose.Email FOSS a partir do PyPI usando o comando pip abaixo:

pip install "aspose-font>=1.0.0"

Passo 2: Importar as classes necessárias

Importação FontLoader e a) TtfFont Para carregar uma fonte TTF e aceder às suas propriedades tipadas:

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

Passo 3: Carregar e inspecionar uma fonte TTF

Carregar um arquivo TTF usando FontLoader.open() e ler propriedades básicas como nome, família e contagem de glifos:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)

Passo 4: Leia a Tabela de Núcleo

Acesso ao ttf_tables Propriedade e verificação da presença da tabela de núcleo por nome:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)

Passo 5: Instanciar uma fonte variável

Carregar um arquivo de fonte variável, verifique is_variable,E chama-me . instantiate() com um dicionário de eixos para produzir uma instância estática:

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
    static = ttf_font.instantiate({"wght": 700.0})
    print("Instantiated:", static.font_name)

Passo 6: Converter para WOFF2

Converter uma fonte TTF carregada para o formato WOFF2 passando FontType.WOFF2 a) para o FontConverter.convert():

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType

font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)

Problemas comuns e soluções

AttributeError: Font has no attribute ttf_tables Utilização ttf_font: TtfFont = FontLoader.open(...). A Comissão ttf_tables A propriedade está em TtfFont, não a base . Font.

is_variable é False em uma fonte variável Algumas fontes variáveis usam um tipo de letra não padrão. fvar Formatos de tabela. Verificar ttf_font.fvar is not None como alternativa.

instantiate() aumentos de valor KeyError A etiqueta do eixo deve ser uma etiquetada de 4 carros. (por exemplo:. "wght", "wdth") Verificação ttf_font.axes para as etiquetas disponíveis.

Perguntas Frequentes

Qual é a diferença entre TTF e OTF?

OTF e TTF compartilham o mesmo contêiner binário (SFNT). As fontes do OFT normalmente usam contornos de CFF. enquanto as fontes TTF usam curvas quadráticas TrueType. Ambas são carregadas por FontLoader.open().

Posso obter pares de núcleos a partir de uma fonte TTF?

Sim, usa. TtfFont.get_kern_pairs() para obter uma lista de KernPair objetos.

A biblioteca suporta coleções de fontes (.ttc)?

Sim, usa. FontLoader.open(source, collection_index=N) para selecionar uma fonte específica a partir de: um ficheiro de recolha do TTC.

Ver também:

 Português