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 TtfFontPasul 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.