Introdução
Fontes TrueType (.ttf) e o seu superconjunto OpenType (.otf) são a fonte dominante. Os dois formatos compartilham a mesma estrutura de tabela binária. [PLACEHOLDER_0}.Font FOSS para Python expõe esta estrutura. através de: TtfFont, que permite o acesso directo a tabelas individuais do OpenType, dados de pares de núcleos, E os contornos dos glifos.
A Comissão TtfFont A classe estende o Font classe de base com métodos específicos para a TTF, incluindo: get_blob, get_table_bytes, set_table_bytes, e instantiate para fonte variável Bloqueio do eixo. TtfTableSet propriedade (ttf_tables) fornece acesso tipado ao sistema de informação. tabelas OpenType mais comuns: head, hhea, maxp, os2, name, post.
A biblioteca é publicada no PyPI como: aspose-font e licenciado sob a licença MIT. Não tem dependências comerciais obrigatórias.
Características principais
Carregamento de fontes TTF e OTF
Utilização: FontLoader.open para carregar qualquer ficheiro de fonte TrueType ou OpenTyme:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)
FontLoader.open detecta o formato da fonte a partir do cabeçalho de arquivo. Ambos .ttf (TrueType) e a) .otf (OpenType CFF) arquivos são suportados e ambos retornam um TtfFont - Por exemplo.
Acesso a tabelas OpenType através do TtfTableSet
A Comissão ttf_tables propriedade retorna um TtfTableSet de uma dimensão superior a 150 cm3 OpenType tables. Cada propriedade retorna o objeto da tabela ou None Se ausente:
A Comissão ttf_tables propriedade em TtfFont retorna um TtfTableSet Disponível. Acessórios para mesas:
head—HeadTable | Nonehhea—HheaTable | Nonemaxp—MaxpTable | Noneos2—Os2Table | Nonename—NameTable | Nonepost—PostTable | None
Cada propriedade retorna o objeto da tabela ou None se essa tabela não estiver presente no quadro de referência, a seguir: Arquivo de fonte. Acesso TtfTableSet propriedades a verificar para tabelas específicas antes de ler Para tabelas não abrangidas por acessórios nomeados, utilizar o código de identificação: TtfTableSet.get_raw(tag) a) para o Obter bytes brutos por meio de uma etiqueta OpenType com quatro caracteres.
Leitura de bytes da tabela cru
get_table_bytes(tag) Retorna os bytes brutos para qualquer tabela OpenType. Use get_blob(tag) para uma variante Não-segura que retorna: None quando a tabela estiver ausente:
TtfFont fornece dois métodos para o acesso à mesa cru:
get_table_bytes(tag) -> bytesRetorna os bytes brutos para uma tabela nomeada (aumenta se ausente)get_blob(tag) -> bytes | NonedevoluçõesNonese a tabela estiver ausente (variante segura)
Ambos os métodos aceitam uma etiqueta de tabela OpenType de quatro caracteres, como: "cmap", "GDEF", ou "GPOS".- Usar . get_blob quando uma mesa é opcional para que você possa verificar se None antes de processamento.
Pares de núcleo
get_kern_pairs() Retorna todos os pares de núcleos codificados na fonte. Cada um KernPair tem left (GlyphId), right (GlyphId) e value (int em unidades de fonte):
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")
for pair in pairs[:5]:
print(f" Left: {pair.left} Right: {pair.right} Value: {pair.value}")
Metricas de fonte
As métricas padrão são acessíveis através do sistema de cálculo da taxa de desemprego. metrics propriedade:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
metrics = loaded.metrics
print(f"Units per em : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
print(f"Descender : {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")
Suporte de fonte variável
Para fontes variáveis, TtfFont exposições is_variable, variable_axes, e named_instances.- Usar . get_axis(tag) para recuperar um eixo específico por sua quatro letras Tag: “Aqui está o meu nome”.:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/RobotoFlex.ttf")
print(f"Is variable: {loaded.is_variable}")
print(f"Axes : {len(loaded.variable_axes)}")
A Comissão get_axis(tag) método de TtfFont recupera um VariableAxis por suas quatro letras. etiqueta (por exemplo:. "wght" em peso, "wdth" Retorna a posição de um arquivo. None se o eixo for: não está presente na fonte de texto. fvar - A mesa.
Converter fontes
to_bytes(font_type) converte a fonte para um formato diferente. Use o FontType emum para especificar o alvo:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("fonts/Roboto-Regular.ttf")
ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
fh.write(ttf_bytes)
print(f"Serialized: {len(ttf_bytes)} bytes")
Começo rápido
Instalar a biblioteca:
.venv/bin/pip install aspose-font
Carregar uma fonte TTF e inspecioná-la:
from aspose_font import FontLoader, FontType
loaded = FontLoader.open("Roboto-Regular.ttf")
print(f"Font name : {loaded.font_name}")
print(f"Family : {loaded.font_family}")
print(f"Glyphs : {loaded.num_glyphs}")
print(f"Variable : {loaded.is_variable}")
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")
Formatos suportados
| Formatos de imagem | Extensão | Leia. | Escrever . |
|---|---|---|---|
| TTF | .ttf | ✓ | — |
| OTF | .oft | ✓ | — |
| EOT | .Não. | ✓ | — |
| CFF | .cff | ✓ | — |
| TYPE1 | .pfb/.pfa | ✓ | — |
| WOFF | .- Não. | ✓ | — |
| WOFF2 | .woff2 | ✓ | — |
Todos os formatos carregam via FontLoader.open. As fontes TTF/OTF devolvem um TtfFont - Por exemplo.
Open Source & Licenciamento
Aspose.Font FOSS for Python is released under the MIT License. You can use it in O código-fonte é o código de acesso a todos os projetos pessoais, comerciais e open source sem custo. disponível no GitHub e o pacote é distribuído via PyPI como aspose-font.