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.
FontLoader.open() e FontLoader.load()Font: font_name, font_family, font_style, num_glyphsFontEncoding.unicode_to_gid() e get_all_codepoints()FontMetrics: ascendente, descendente, espaçamento entre linhas, quadrado-emGlyphAccessor.get_glyph_by_id() e get_glyph_by_unicode()GlyphAccessor.get_glyphs_for_text()MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyph.KernPair para cálculos precisos de layout de textoFontConverter.convert()CurveAdapter.quad_to_cubic() e cubic_to_quads()convert_path_quad_to_cubic() e convert_path_cubic_to_quad()FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web()FontSubsetter.subset_by_presets() e available_presets()FontSubsetter.analyze_coverage() e analyze_web_coverage()FontCleaner.clean_for_web()CompatibilityChecker.compare_fonts() e compare_variable_instances()AnimationPreviewBuilder.build_axis_sweep()AnimationPreviewBuilder.build_path()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
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)
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")
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
É 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.
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.
FontLoader.open() lê TTF, OTF, CFF, Type 1, WOFF, WOFF2 e EOT. FontConverter.convert() grava TTF, CFF, WOFF e WOFF2. EOT é somente leitura.
Não. Font.to_bytes() não está implementado na classe base. Use FontConverter.convert() para produzir um novo Font no formato desejado.
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.