1. Produtos
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS para Python

Biblioteca Python de código aberto para carregar, inspecionar, converter e subdefinir arquivos de fonte TTF, OTF, CFF, WOFF, WOFF2 e EOT.

Trabalhe com fontes programaticamente em Python

Aspose.Font FOSS para Python é um kit de ferramentas puro-Python para carregar, inspecionar, converter, gerar subconjuntos e visualizar fontes nos formatos TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 e EOT. A biblioteca funciona em Python 3.10 ou posterior e não requer bibliotecas de fontes externas do SO nem dependências nativas.

A biblioteca expõe uma API limpa para carregamento de fontes via FontLoader, acesso a glifos via GlyphAccessor, conversão de formato via FontConverter, otimização para web via FontCleaner, subdefinição consciente de texto via FontSubsetter, e animação de fontes variáveis via AnimationPreviewBuilder. Metadados de fonte como nome, família, estilo, contagem de glifos, codificação e métricas são acessíveis através da classe base Font sem a necessidade de analisar tabelas binárias manualmente.

Aspose.Font FOSS tem licença MIT e pode ser instalado a partir do PyPI com um único comando pip install. É adequado para ferramentas de design de fontes, pipelines de fontes web, mecanismos de renderização de glifos e qualquer aplicação Python que precise ler, transformar ou gerar arquivos de fonte. Para a família de produtos empresariais, veja Aspose.Font — Enterprise Product Family.

Carregamento de Fontes e Detecção de Formato

  • Carregue fontes a partir de caminhos de arquivo ou bytes brutos com FontLoader.open() e FontLoader.load()
  • Detectar formato automaticamente: TTF, OTF, CFF, WOFF, WOFF2, EOT, Type 1
  • Acesse os metadados da fonte via a classe base Font: font_name, font_family, font_style, num_glyphs
  • Leia mapas de codificação de glifos com FontEncoding.unicode_to_gid() e get_all_codepoints()
  • Inspecione as métricas da fonte com FontMetrics: ascendente, descendente, espaçamento entre linhas, quadrado-em

Casos de Uso Típicos

  • Pipelines de validação de fontes e extração de metadados
  • Verificações de CI/CD que verificam o nome da família de fontes e a contagem de glifos
  • Serviços de ingestão de fontes Web que aceitam múltiplos formatos de entrada
  • Ferramentas de design de fontes que exibem metadados sem um runtime de desktop

Acesso a Glifos e Inspeção de Caminhos

  • Recupere glifos por ID ou Unicode com GlyphAccessor.get_glyph_by_id() e get_glyph_by_unicode()
  • Resolva todos os glifos de uma string com GlyphAccessor.get_glyphs_for_text()
  • Inspecione os caminhos de contorno de glifos como comandos digitados: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Acesse a caixa delimitadora do glifo, a largura de avanço e as margens laterais a partir das propriedades Glyph.
  • Leia pares de kerning de KernPair para cálculos precisos de layout de texto

Casos de Uso Típicos

  • Verificações de cobertura de glifos para renderização de texto multilíngue
  • Extração de contorno para caminho SVG ou geração de vetor
  • Validação da tabela de kerning em fluxos de trabalho de QA de fontes
  • Pesquisa de modelagem de texto e experimentação de layout de baixo nível

Conversão de Fontes

  • Converter entre TTF, OTF, CFF, WOFF, WOFF2, EOT e Type 1 com FontConverter.convert()
  • Adaptar tipos de curva Bezier com CurveAdapter.quad_to_cubic() e cubic_to_quads()
  • Converter caminhos de glifos entre quadrático e cúbico com convert_path_quad_to_cubic() e convert_path_cubic_to_quad()

Casos de Uso Típicos

  • Pipelines de fontes web que convertem fontes mestre TTF para WOFF2 para distribuição
  • Ferramentas de fundição tipográfica que exportam para vários formatos de destino a partir de uma única fonte
  • Conversão legada de EOT para pilhas de fontes web compatíveis com versões anteriores
  • Normalização automatizada de formato de fonte na integração contínua

Subconjunto de Fontes

  • Subconjunto de fontes por texto Unicode com FontSubsetter.subset_by_text()
  • Subconjunto por lista de IDs de glifos com FontSubsetter.subset_by_gids()
  • Produza subconjuntos otimizados para web com FontSubsetter.subset_for_web()
  • Aplique perfis predefinidos nomeados com FontSubsetter.subset_by_presets() e available_presets()
  • Analise a cobertura de subconjuntos com FontSubsetter.analyze_coverage() e analyze_web_coverage()

Casos de Uso Típicos

  • Reduzindo o tamanho da carga útil WOFF2 para páginas da web com conjuntos de caracteres limitados
  • Produzindo subconjuntos de fontes específicos por idioma para implantações i18n
  • Fluxos de licenciamento de fontes que distribuem subconjuntos por conjunto de páginas
  • Otimização de desempenho para aplicativos web móveis

Otimização Web e Pré-visualizações de Fontes Variáveis

  • Remova tabelas legadas e registros de nomes do Mac com FontCleaner.clean_for_web()
  • Verifique a compatibilidade do eixo da fonte variável com CompatibilityChecker.compare_fonts() e compare_variable_instances()
  • Gere varreduras de eixo animadas em APNG com AnimationPreviewBuilder.build_axis_sweep()
  • Crie caminhos de animação de várias etapas com AnimationPreviewBuilder.build_path()

Casos de Uso Típicos

  • Páginas de espécimes de fontes e exploradores de eixos interativos para fundições tipográficas
  • Pipelines de CI que verificam o comportamento de fontes variáveis antes da distribuição
  • Pipelines de desempenho da Web que descartam tabelas binárias não essenciais
  • Miniaturas de visualização de fontes para aplicativos de gerenciamento de fontes

Carregar um Arquivo de Fonte

Abra uma fonte TrueType ou OpenType a partir de um caminho de arquivo e leia seus metadados básicos.

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

Acessar Glifos de uma Cadeia de Texto

Resolva todos os glifos de um ponto de código Unicode e inspecione seus caminhos de contorno.

from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Gerar uma Animação de Varredura de Eixo de Fonte Variável

Crie um APNG animado que varra um eixo de fonte variável do valor inicial ao final.

from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder

font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")

asset = AnimationPreviewBuilder.build_axis_sweep(
    font,
    axis_tag="wdth",
    start_val=75.0,
    end_val=100.0,
    frames=3,
    fps=10,
    text="A",
    size=10.0,
    bounce=True,
)

asset.write_to("roboto-sweep-wdth.png")

Limpar uma Fonte para Implantação na Web

Remova tabelas legadas e registros de nomes do Mac para reduzir o tamanho do binário antes de servir na web.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

Perguntas Frequentes

O que é Aspose.Font FOSS para Python?

É uma biblioteca gratuita, licenciada sob MIT, pure-Python para carregar, inspecionar, converter e fazer subset de fontes nos formatos TTF, OTF, CFF, Type 1, WOFF, WOFF2 e EOT. Nenhuma dependência nativa é necessária.

Como instalo Aspose.Font FOSS para Python?

Execute pip install "aspose-font>=1.0.0". Nenhuma dependência a nível de sistema é necessária. A biblioteca funciona no Windows, macOS e Linux com Python 3.10 ou superior.

Quais formatos de fonte são suportados?

FontLoader.open() lê TTF, OTF, CFF, Type 1, WOFF, WOFF2 e EOT. FontConverter.convert() grava TTF, CFF, WOFF e WOFF2. EOT é somente leitura.

Font.to_bytes() está disponível?

Não. Font.to_bytes() não está implementado na classe base. Use FontConverter.convert() para produzir um novo Font no formato desejado.

Posso fazer subset de uma fonte para entrega na web?

Sim. FontSubsetter.subset_by_text(font, text) retorna um novo Font contendo apenas os glifos necessários para o texto fornecido. FontSubsetter.subset(font, codepoints) e subset_by_gids(font, gids) oferecem controle mais fino.

  

Recursos de Suporte e Aprendizado

 Português