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 Noneantes 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étodo | Descrição: |
|---|---|
TtfFont.ttf_tables | Propriedades 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 |