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 TtfFontPasso 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.