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

Aspose.Font FOSS for Python

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

Trabalhar com fontes de forma programática em Python

Aspose.Font FOSS para Python é um kit de ferramentas puro-Python para carregar, inspecionar, converter, fazer subdefinições 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 do SO externas ou dependências nativas.

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

Aspose.Font FOSS é licenciado sob MIT e instalável a partir do PyPI com um único comando pip install. É adequado para ferramentas de design de fontes, pipelines de fontes web, motores de renderização de glifos e qualquer aplicação Python que precise ler, transformar ou produzir arquivos de fontes. Para a família de produtos empresariais, veja Aspose.Font — Enterprise Product Family.

Carregamento de fontes e detecção do formato

  • Carregar fontes de caminhos de arquivo ou bytes cru com FontLoader.open() e FontLoader.load()
  • Formatos de detecção automática: TTF, OTF (OFF), CFF (CFF) WOFF, WOff2 (WOFF2), EOT (EOT), Tipo 1
  • Acesse os metadados de fonte através da classe base Font: font_name, font_family,font_style e num_glyphs
  • Leia mapas de codificação do glifo com FontEncoding.unicode_to_gid() e get_all_codepoints()
  • Inspeccionar métricas de fonte com FontMetrics: ascensão, descida, intervalo entre linhas, em-quadrado

Casos de uso típicos

  • Pipelines de validação e extracção de metadados para fontes
  • Verificações CI/CD que verificam o nome da família de fontes e a contagem dos glifos
  • Serviços de ingestão de fontes na Web que aceitam vários formatos de entrada.
  • Ferramentas de design de fontes que exibem metadados sem um tempo de execução desktop

Acesso a glifos e inspecção de trajectórios

  • 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 dos glifos como comandos digitados: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Acesse a caixa delimitadora do glifo, a largura de avanço e os espaçamentos 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 do glifo para a reprodução multilíngue de textos
  • Extração de contornos para a geração do caminho ou vetor SVG
  • Validação da tabela central nos fluxos de trabalho QA de fontes
  • Pesquisa de modelagem de textos e experimentação de layout em baixo nível

Conversão de fonte

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

Casos de uso típicos

  • Pipelines de fontes da Web que convertem as fontes-mãe TTF para WOFF2 para distribuição.
  • Tipo de ferramenta de fundição que exporta para alvos de vários formatos a partir de uma fonte
  • Conversão EOT antiga para pilhas de fontes web compatíveis com versões anteriores
  • Normalização automática de formatos de fonte em integração contínua

Subset de fonte

  • Subconjunto de fontes por texto Unicode com FontSubsetter.subset_by_text()
  • Subconjunto por lista de identificadores de glifos com FontSubsetter.subset_by_gids()
  • Produzir subconjuntos de web-optimizado com FontSubsetter.subset_for_web()
  • Aplicar perfis pré-definidos com FontSubsetter.subset_by_presets() e available_presets()
  • Analisar a cobertura do subconjunto com FontSubsetter.analyze_coverage() e analyze_web_coverage()

Casos de uso típicos

  • Reduzir o tamanho da carga útil WOFF2 para páginas web com conjuntos de caracteres limitados
  • Produção de subconjuntos de fontes específicos para a linguagem em implantações i18n.
  • Fluxos de trabalho de licenciamento de fontes que distribuem subconjuntos por conjunto de páginas
  • Optimização do desempenho para aplicações web móveis

Optimização da Web e antevisões de fontes variáveis

  • Descarte tabelas legadas e registros de nomes Mac com FontCleaner.clean_for_web()
  • Verificar a compatibilidade do eixo de fonte com CompatibilityChecker.compare_fonts() e compare_variable_instances()
  • Gerar varreduras de eixo APNG animadas com AnimationPreviewBuilder.build_axis_sweep()
  • Construir caminhos de animação multi-passo com AnimationPreviewBuilder.build_path()

Casos de uso típicos

  • Páginas de modelos de fontes e exploradores interativos dos eixos para fundições de tipos
  • Sistemas de CI que verificam o comportamento das fontes variáveis antes da distribuição
  • Pipelines de desempenho da Web que descartam tabelas binárias não essenciais
  • Miniaturas de pré-visualização de fontes para aplicações de gestão de letras

Carregar um arquivo de fonte

Abra uma fonte TrueType ou OpenTyme a partir de um caminho de arquivo e leia os 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

Glyphs de acesso para uma cadeia de texto

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

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 do eixo da fonte variável

Crie um APNG animado que varre o eixo de uma 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

Descarte tabelas legadas e registros de nomes Mac para reduzir o tamanho binário antes do serviço 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 de Python pura, gratuita e licenciada pelo MIT para carregamento, inspeção, conversão e subestabelecimento de fontes em formatos TTF, OTF , CFF, Tipo 1, WOFF , WOff2 e EOT. Não são necessárias dependências nativas .

Como eu instalar Aspose.Font FOSS para Python?

Execute pip install "aspose-font>=1.0.0". Não são necessárias dependências ao nível do sistema. A biblioteca funciona no Windows, macOS e Linux com Python 3.10 ou posterior.

Quais os formatos de fonte suportados?

FontLoader.open() lê TTF, OTF , CFF, Tipo 1, WOFF , WOff2 e EOT. FontConverter.convert() escreve TFT, CFC, WOF e WOFL2.

Font.to_bytes ((() está disponível?

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

Posso sub-configurar 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