Lavorare con i font TrueType
Lavorare con i font TrueType
Questa guida mostra come caricare i font TrueType, ispezionare i loro dati tabulari binari, leggere i byte grezzi delle tabelle e creare istanze statiche da font variabili usando TtfInstancer.
TrueType (TTF) i font sono il formato desktop e web più comune. Aspose.Font FOSS per Python espone TtfFont per accedere ai dati delle tabelle specifiche TTF, al recupero del blob dei glifi e al controllo degli assi dei font variabili.
Caricamento di un Font TTF
FontLoader.open() rileva automaticamente il formato TTF e restituisce un oggetto di tipo TtfFont. L’istanza restituita fornisce l’accesso alle funzionalità specifiche TTF come ttf_tables, get_table_bytes() e ai dati degli assi dei font variabili.
from aspose_font import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name, font.num_glyphs, "glyphs")Accesso alle tabelle TTF
TtfFont.ttf_tables espone un TtfTableSet con proprietà nominate per le tabelle comuni.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
tables = ttf_font.ttf_tables
print("kern table present:", tables.kern is not None)Byte grezzi della tabella
Usa TtfFont.get_table_bytes(tag) per recuperare i dati binari grezzi della tabella e TtfFont.set_table_bytes(tag, data) per scrivere i byte della tabella modificati.
from aspose_font import FontLoader
from aspose_font import TtfFont
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
raw_cmap = ttf_font.get_table_bytes("cmap")Istanze di font variabili
TtfFont.get_axis(tag) restituisce un singolo asse variabile tramite il suo tag a 4 caratteri (ad es. "wght", "wdth"), oppure None se il font non definisce quell’asse. TtfInstancer.instantiate() genera un’istanza statica da un font variabile alle coordinate dell’asse specificate.
from aspose_font import FontLoader
from aspose_font import TtfFont
from aspose_font.ttf.instancer import TtfInstancer # internal API — may change between releases
ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
weight_axis = ttf_font.get_axis("wght")
if weight_axis is not None:
print(f"wght range: {weight_axis.min_value}-{weight_axis.max_value}")
# Get a static instance at wght=700, wdth=75
instance = TtfInstancer.instantiate(ttf_font, {"wght": 700.0, "wdth": 75.0})Suggerimenti e migliori pratiche
- Usa sempre
isinstance(font, TtfFont)prima di accedere attf_tablesoget_table_bytes() - Usa
TtfTableSet.kernper verificare la disponibilità del kerning prima di leggere le coppie di kern - L’instancing di font variabili produce un nuovo oggetto font; l’originale rimane invariato
API Reference Riepilogo
| Classe / Metodo | Descrizione |
|---|---|
TtfFont.ttf_tables | Accesso al set di tabelle TTF |
TtfFont.get_table_bytes(tag) | Byte grezzi per una tabella denominata |
TtfFont.set_table_bytes(tag, data) | Scrivi i byte della tabella modificata |
TtfFont.get_axis(tag) | Asse del carattere variabile per tag, o None |
TtfInstancer.instantiate(font, coords) | Crea un’istanza statica |
TtfTableSet.kern | Tabella di kerning (Nessuno se assente) |