Introdução
Embedded OpenType (EOT) é um formato de fonte compacto originalmente desenvolvido para incorporar fontes TrueTyme em páginas da web. Um arquivo EOT envolve uma fonte TTF ou OTF com um cabeçalho de tamanho fixo contendo campos de metadados que descrevem dimensões, versão, conjunto de caracteres e permissões de inserção de fontes. Apesar do desenvolvimento moderno da Web ter se mudado para WOFF/WOFF2, os arquivos E OT continuam em circulação em documentos legados e aplicativos corporativos.
Aspose.Font FOSS for Python provides direct access to EOT font internals through the EotFont A classe e o seu companheiro. EotHeader.Pode carregar um ficheiro EOT com o código de segurança . FontLoader.open, ler campos de cabeçalho, atravessar o interior TtfFont, e serializam o resultado de volta para bytes ou a um arquivo usando Font.save.
A biblioteca é publicada no PyPI como: aspose-font e licenciado sob a licença MIT. Não tem dependências comerciais obrigatórias e funciona com o tempo de execução padrão Python 3.
Características principais
Carregamento de fontes EOT
Utilização: FontLoader.open para carregar um arquivo EOT a partir de um caminho ou um objeto bytes. O método retorna um EotFont instância quando detecta a assinatura EOT:
from aspose_font import FontLoader, EotFont
font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)
print(font.font_name) # e.g. "Roboto"
print(font.font_family) # e.g. "Roboto"
print(font.num_glyphs) # number of glyphs in the inner font
FontLoader.open lê a extensão de arquivo e magia cabeçalho para detectar o formato Automaticamente. font_type argument é necessário para arquivos de fonte comuns.
Leitura de metadados do EotHeader
EotFont expõe os campos de cabeçalho diretamente como propriedades na classe. Estes correspondem aos campos definidos na especificação binária EOT:
from aspose_font import FontLoader, EotFont, EotSerializer
# Load EOT — FontLoader returns an EotFont instance for .eot files
loaded = FontLoader.open("fonts/sample.eot")
# Serialize back to bytes to confirm the font loaded correctly
eot_bytes = EotSerializer.serialize(loaded)
print(f"EOT data loaded: {len(eot_bytes)} bytes")
# Base Font properties work on any loaded font
print("Font name:", loaded.font_name)
print("Glyphs :", loaded.num_glyphs)
A Comissão EotFont classe expõe os seguintes metadados de cabeçalho como propriedades:
eot_version(int) versão em formato EOT (por exemplo:.0x00020002)flags(int) inserir sinais de permissãocharset(int) identificador do conjunto de caracteres (0 = ANSI, 1 = DEFAULT)italic(int) bandeira em itálico (0 ou 1)weight(int) peso da fonte (por exemplo, 400 para Regular, 700 para Bold)fs_type(int) OS/2 fsType bits de incorporação
Utilização: flags e a) fs_type para determinar se a fonte permite subcondicionamento ou Embed, que é relevante no processamento de fontes para redes de redistribuição.
Acesso à fonte interna de dados
Cada um. EotFont Envolve uma fonte TrueType padrão. inner_font declarações de propriedade a) O TtfFont instância, dando-lhe acesso ao conjunto completo de tabelas TrueType:
from aspose_font import FontLoader, EotFont
loaded = FontLoader.open("fonts/sample.eot")
# Metrics are accessible directly from the loaded font
metrics = loaded.metrics
print("Units per em :", metrics.units_per_em)
print("Ascender :", metrics.ascender)
print("Descender :", metrics.descender)
print("Line gap :", metrics.line_gap)
A Comissão inner_font propriedade em EotFont devolve o embrulhado. TtfFont O Conselho, por exemplo, prevê que: acesso ao conjunto completo de tabelas TrueType, pares de núcleos e tabeiras de codificação.
Serialização de EOT em bytes
EotSerializer.serialize Converte qualquer Font Objeto a uma sequência de bytes EOT cru:
from aspose_font import FontLoader, EotFont, EotSerializer
font = FontLoader.open("fonts/sample.eot")
assert isinstance(font, EotFont)
eot_bytes = EotSerializer.serialize(font)
with open("output/sample_copy.eot", "wb") as fh:
fh.write(eot_bytes)
print(f"Serialized {len(eot_bytes)} bytes")
Conversão de TTF em EOT
EotSerializer.serialize aceita qualquer Font exemplo, para que você possa carregar um TTF e Serializá-lo diretamente para bytes EOT:
from aspose_font import FontLoader, EotFont, EotSerializer
ttf = FontLoader.open("fonts/Roboto-Regular.ttf")
eot_bytes = EotSerializer.serialize(ttf)
with open("output/Roboto-Regular.eot", "wb") as fh:
fh.write(eot_bytes)
reloaded = FontLoader.open("output/Roboto-Regular.eot")
assert isinstance(reloaded, EotFont)
print("Converted and verified:", reloaded.font_name)
Metricas de fonte e pares de núcleo
A Comissão EotFont herda o total. Font interface, assim métricas e codificação são disponível directamente sem passar por: inner_font:
from aspose_font import FontLoader
loaded = FontLoader.open("fonts/sample.eot")
metrics = loaded.metrics
print(f"Ascender : {metrics.ascender}")
print(f"Descender: {metrics.descender}")
print(f"Line gap : {metrics.line_gap}")
print(f"Underline: {metrics.underline_position}")
for pair in loaded.get_kern_pairs():
print(f" Kern: {pair}")
Começo rápido
Instalar a biblioteca:
.venv/bin/pip install aspose-font
Carregar e inspecionar uma fonte EOT:
from aspose_font import FontLoader, EotFont, EotSerializer
loaded = FontLoader.open("sample.eot")
# Base font info
print(f"Font name : {loaded.font_name}")
print(f"Glyphs : {loaded.num_glyphs}")
# Metrics
metrics = loaded.metrics
print(f"UPM : {metrics.units_per_em}")
print(f"Ascender : {metrics.ascender}")
# Serialize the loaded font back to EOT bytes
eot_bytes = EotSerializer.serialize(loaded)
print(f"Serialized: {len(eot_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 listados acima são suportados para carregamento via FontLoader.open.Escrita . para um formato específico utiliza Font.save ou a) EotSerializer.serialize para a EOT.
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.