Cum să lucrați cu fonturi TTF în Python

Cum să lucrați cu fonturi TTF în Python

Acest ghid arată cum să încărcați fonturi TTF, inspectaţi TtfFont proprietăți, citit tabele, instantiate fonturi variabile și de a converti în alte formate folosind Aspose.Font FOSS pentru Python. TrueType fonturile (.ttf) sunt cele mai comune formate de font. Aspose.Font FOSS le încărcă ca TtfFont Instanțe, oferind acces la tabele, axele de font variabile, date cu glifoane și utilități de conversie.

Ghid pas cu pas

Pasul 1: Instalați pachetul

Instalați pachetul Aspose.Font FOSS din PyPI folosind comanda pip de mai jos:

pip install "aspose-font>=1.0.0"

Pasul 2: Importarea clasei necesare

Importul FontLoader și de: TtfFont pentru a încărca un font TTF și să acceseze proprietățile tipate ale acestuia:

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

Pasul 3: Încărcați și verificați un font TTF

Încărcați un fișier TTF folosind FontLoader.open() și citiți proprietățile de bază, cum ar fi numele, familia și numărul glifosilor:

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

Pasul 4: Citeste tabelul de kern

Acces la ttf_tables proprietate și verificarea prezenței tabelului de kern prin nume:

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

Pasul 5: Instantați o fontă variabilă

Încărcați un fișier de font variabil, verificaţi is_variable, şi sună-mă . instantiate() cu un dicționar ax pentru a produce o instanță statică:

from aspose_font.loader import FontLoader
from aspose_font.ttf.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)

Pasul 6: Convertiți la WOFF2

Convertiți un font TTF încărcat în format WOFF2 prin trecerea FontType.WOFF2 la … în FontConverter.convert():

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType

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

Probleme comune şi soluţii

AttributeError: Font has no attribute ttf_tables Utilizare ttf_font: TtfFont = FontLoader.open(...). În ceea ce priveşte ttf_tables proprietatea este pe TtfFont, nu baza . Font.

is_variable este False pe o fontă variabilă Unele fonturi variabile folosesc un tip de scris non-standard. fvar Formatul tabelului. ttf_font.fvar is not None ca o alternativă.

instantiate() creșteri de valoare KeyError Eticheta axului trebuie să fie o etichetă cu 4 car. (de exemplu:. "wght", "wdth") Verificarea ttf_font.axes pentru etichetele disponibile.

Întrebări frecvente

Care este diferența dintre TTF și OTF?

OTF și TTF împărtășesc același container binar (SFNT). Fontele OFT folosesc de obicei contoarele CFF. În timp ce fonturile TTF folosesc curbe pătrate TrueType. Ambele sunt încărcate de: FontLoader.open().

Pot obține perechi de nuclee dintr-un font TTF?

Da, foloseşte-l. TtfFont.get_kern_pairs() pentru a obţine o listă de KernPair Obiecte.

Biblioteca suportă colectii de fonturi (.ttc)?

Da, foloseşte-l. FontLoader.open(source, collection_index=N) pentru a selecta un font specific din: un dosar de colectare TTC.

Vezi și:

 Română