Inspecção da tabela de fontes

Inspecção da tabela de fontes

Inspecção da tabela de fontes

Este guia mostra como ler propriedades de tabela nomeadas, recuperar dados da tabulação binária crua e escrever bytes de tábua modificados novamente em uma fonte TrueType.

As fontes TrueType e OpenTyme são compostas de tabelas binárias, cada uma identificada por um tag de 4 bytes. TtfTableSet expõe as propriedades Python denominadas para tabelas comuns, e TtfFont fornece: Acesso por byte bruto para todas as tabelas.


Leitura de tabelas com nomes

TtfTableSet expõe head, hhea, maxp, os2, nome, post, cmap, loca, hmtx e kern tablas.

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables

print("head table:", tables.head is not None)
print("kern table:", tables.kern is not None)

Leitura de bytes da tabela cru

TtfFont.get_table_bytes(tag) Retorna o conteúdo binário completo de qualquer tabela identificada pela sua etiqueta de quatro caracteres, permitindo a inspecção em baixo nível ou análise personalizada.

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_name = ttf_font.get_table_bytes("name")
print(f"name table: {len(raw_name)} bytes")

Escrever bytes de tabela modificados

TtfFont.set_table_bytes(tag, data) Substitui o conteúdo binário de uma tabela, permitindo modificações personalizadas da mesma, tais como correção das regras do GSUB ou atualização dos registos de nomes.

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
modified_bytes = b"..."  # your modified table
ttf_font.set_table_bytes("GSUB", modified_bytes)

Dicas e melhores práticas

  • Verificação tables.kern is not None antes de aceder aos dados do kerning.
  • TtfTableSet.get_raw(tag) e a) set_raw(tag, data) são pseudónimos para: get_table_bytes / set_table_bytes
  • Utilização: FontCleaner.clean_for_web() Em vez de remover manualmente tabelas para evitar problemas de consistência

Resumo de referência da API

Classe / MétodoDescrição:
TtfFont.ttf_tablesPropriedades de tabela com nome do acesso
TtfFont.get_table_bytes(tag)Leia dados de tabela binária brutos
TtfFont.set_table_bytes(tag, data)Escrever dados de tabela modificados
TtfTableSet.get_raw(tag)Alias para get_table_bytes
TtfTableSet.set_raw(tag, data)Alias para set_table_bytes

Ver também:

 Português