Com treballar amb fonts TTF en Python
Aquesta guia mostra com carregar fonts TTF, inspeccionar TtfFont les propietats, llegir taules, instanciar fonts variables i convertir a altres formats utilitzant Aspose.Font FOSS per Python. Les fonts TrueType (.ttf) són el format de font més comú. Aspose.Font FOSS els carrega com a TtfFont instàncies, donant accés a taules, eixos de fonts variables, dades d’glifs i utilitats de conversió.
Guia de pas a pas
Pas 1: Instal·la el paquet
Instal·lar el paquet FOSS de PyPI utilitzant l’ordre pip a continuació:
pip install "aspose-font>=1.0.0"Pas 2: Import de les classes necessàries
Import FontLoader i de la TtfFont per carregar una font TTF i accedir a les seves propietats tipades:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontPas 3: Carregar i inspeccionar una font TTF
Carregar un arxiu TTF utilitzant FontLoader.open() i llegir propietats bàsiques com el nom, la família i el nombre d’glifs:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)Pas 4: Llegir la taula de nucli
Accedir a la ttf_tables propietat i comprovar la presència de la taula del nucli per nom:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)Pas 5: Instal·lar una font variable
Carregar un fitxer de font variable, comprovar is_variable, i trucar instantiate() amb un diccionari d’eix per produir una instància estàtica:
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)Pas 6: Convertir a WOFF2
Convertir una font TTF carregada en format WOFF2 mitjançant el pas de la pàgina d’enllaç. FontType.WOFF2 a la 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)Problemes comuns i fixos
AttributeError: Font has no attribute ttf_tables Utilització ttf_font: TtfFont = FontLoader.open(...). El ttf_tables la propietat està en TtfFont, no la base . Font.
is_variable és False en una font variable Algunes fonts variables utilitzen un tipus de font no estàndard. fvar Format de taula. Comprovació ttf_font.fvar is not None com una alternativa.
instantiate() augmentacions KeyError L’etiqueta d’eix ha de ser una etiqueta registrada de 4 carros. (per exemple:. "wght", "wdth") Comprovació ttf_font.axes per a les etiquetes disponibles.
Preguntes freqüents
Quina és la diferència entre TTF i OTF?
Les fonts OTF i TTF comparteixen el mateix contenidor binari (SFNT). Les tipografies d’OTF utilitzen típicament contorns de CFF. mentre que les fonts TTF utilitzen corbes quadràtiques de TrueType. Ambdues són carregades per FontLoader.open().
Puc obtenir parelles de grans d’una font TTF?
Sí, utilitzeu-la. TtfFont.get_kern_pairs() per obtenir una llista de KernPair objectes.
La biblioteca dóna suport a col·leccions de fonts (.ttc)?
Sí, utilitzeu-la. FontLoader.open(source, collection_index=N) per seleccionar una font específica de: un fitxer de recollida del TTC.