Come lavorare con i font TTF in Python

Come lavorare con i font TTF in Python

Questa guida mostra come caricare i font TTF, ispezionare le proprietà TtfFont, leggere le tabelle, istanziare i font variabili e convertire in altri formati usando Aspose.Font FOSS per Python. I font TrueType (.ttf) sono il formato di font più comune. Aspose.Font FOSS li carica come istanze TtfFont, offrendo accesso a tabelle, assi dei font variabili, dati dei glifi e utility di conversione.

Guida passo passo

Passo 1: Installa il pacchetto

Installa il pacchetto Aspose.Font FOSS usando il comando seguente:

git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .

Passo 2: Importa le classi richieste

Importa FontLoader e TtfFont per caricare un font TTF e accedere alle sue proprietà tipizzate:

from aspose_font import FontLoader
from aspose_font import TtfFont

Passo 3: Carica e ispeziona un font TTF

Carica un file TTF usando FontLoader.open() e leggi le proprietà di base come nome, famiglia e conteggio dei glifi:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)

Passo 4: Leggi la tabella kern

Accedi alla proprietà ttf_tables e controlla la presenza della tabella kern per nome:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)

Passo 5: Istanzia un font variabile

Carica un file di font variabile, controlla is_variable, e chiama instantiate() con un dizionario di assi per produrre un’istanza statica:

from aspose_font import FontLoader
from aspose_font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
    static = ttf_font.instantiate({"wght": 700.0})
    print("Instantiated:", static.font_name)

Passo 6: Converti in WOFF2

Converti un font TTF caricato in formato WOFF2 passando FontType.WOFF2 a FontConverter.convert():

from aspose_font import FontLoader
from aspose_font.converter import FontConverter  # internal API — may change between releases
from aspose_font import FontType

font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)

Problemi comuni e soluzioni

AttributeError: Font has no attribute ttf_tables — Usa ttf_font: TtfFont = FontLoader.open(...). Il ttf_tables la proprietà è su TtfFont, non la base Font.

is_variable è False su un font variabile — Alcuni font variabili usano un non-standard fvar formato di tabella. Controlla ttf_font.fvar is not None come alternativa.

instantiate() raises KeyError — L’etichetta dell’asse deve essere un tag a 4 caratteri registrato (ad es. "wght", "wdth"). Controlla ttf_font.axes per i tag disponibili.

Domande frequenti

Qual è la differenza tra TTF e OTF?

OTF e TTF condividono lo stesso contenitore binario (SFNT). I font OTF tipicamente usano contorni CFF mentre i font TTF usano TrueType curve quadratiche. Entrambi sono caricati da FontLoader.open().

Posso ottenere le coppie di kern da un font TTF?

Sì. Usa TtfFont.get_kern_pairs() per ottenere un elenco di oggetti KernPair.

La libreria supporta le collezioni di font (.ttc)?

Sì. Usa FontLoader.open(source, collection_index=N) per selezionare un font specifico da un file di collezione TTC.

Vedi anche

 Italiano