Introdução

Aspose.Font FOSS for Python provides a coherent set of classes for every common tarefa de gestão das fontes: carregamento dos ficheiros de fontes em vários formatos, leitura de metadados e dados de glifos, conversão entre formatos, subconfiguração para entrega na web e limpeza este guia caminha através de cada capacidade principal com exemplos de código operacional extraídos da API verificada da biblioteca.

O pacote (aspose-font) é licenciado pelo MIT, requer Python 3.10+, e não tem nenhum software de programação. Dependências da biblioteca de fontes do nível OS. Instala-o com pip install aspose-font>=1.0.0.


Características principais

Carregamento de fontes com o FontLoader

FontLoader é o ponto de entrada único para todas as operações de carregamento de fontes. open() O método aceita um caminho de arquivo (str ou Path) e detecta automaticamente o formato. load() método aceita bytes brutos para fluxos de trabalho em memória. Ambos retornam um Font- tipado Objeto que pode ser inspeccionado imediatamente.

from aspose_font.loader import FontLoader

# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")

# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
    font_bytes = f.read()
font = FontLoader.load(font_bytes)

Leitura de metadados da fonte através da classe base de fontes

Uma vez carregado, o sistema de Font classe base expõe propriedades de metadados padrão sem que exige que você analise tabelas de fontes binárias. as propriedades font_name, font_family, font_style, e num_glyphs cobrir as necessidades de metadados mais comuns.

from aspose_font.loader import FontLoader

font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name:   {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style:  {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")

Código e acesso a glifos

FontEncoding mapas Código Unicode aponta para IDs de glifos. Use unicode_to_gid() para o pontos de código único ou get_all_codepoints() Para enumerar a cobertura total do programa de investigação e desenvolvimento, o artigo 2.o é alterado: - É uma fonte. GlyphAccessor então recupera objetos de glifo por ID via get_glyph_by_id(), por Unicode via get_glyph_by_unicode(), ou para uma cadeia de texto via get_glyphs_for_text().

from aspose_font.loader import FontLoader

font = FontLoader.open("OpenSans-Regular.otf")

# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41)  # 'A'
print(f"Glyph ID for 'A': {glyph_id}")

# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

# Inspect path commands
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Conversão de fontes com FontConverter

FontConverter.convert() converte uma fonte carregada entre formatos suportados. Passe o botão de fonte e o identificador de formato alvo para obter um novo objeto da fonte no destino O método trata CFF, TTF, WOFF e WOff2 como fontes de informação. alvo.

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

source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")

Otimizar a Web com o FontCleaner

FontCleaner.clean_for_web() remove tabelas binárias que não são necessárias para web entrega de fontes especificamente DSIG, FFTM e meta ?? e tiras para plataforma Mac (platform_id=1) O resultado é um binário mais magro que reduz a rede de dados. O que é necessário para obter um resultado de uma pesquisa? preservar tipos específicos de tabelas, se necessário.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

font = FontLoader.open("Roboto-Regular.ttf")

# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)

# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
    font,
    drop_metadata_tables=False,
    drop_legacy_tables=True,
    drop_mac_names=True,
)

Inspecção do caminho de glifos

Cada um. Glyph objeto expõe o seu contorno como um GlyphPath cuja commands sequência contém instâncias tipadas de: MoveTo, LineTo, QuadraticTo, CurveTo, e ClosePath.Cada comando tem os atributos de coordenadas relevantes por exemplo, CurveTo tem x1, y1, x2, y2, x, y que lhe permite extrair o Bézier em bruto. dados para a reprodução, geração de SVG ou geometria de colisão.

from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo

font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)

curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")

Começo rápido

pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner

# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")

Formatos suportados

Formatos de imagemExtensãoLeia.Escrever .
TTF.ttf
OTF.oft
CFF.cff
TYPE1.pfb / .pfa
WOFF.- Não.
WOFF2.woff2
EOT.Não.

Open Source & Licenciamento

Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at Aspose-font-foss/Aspose.Font-FOSS-for-Python e o pacote está no PyPI como aspose-font.


Começar a Fazer

Recursos relacionados