Com treballar amb fonts TTF en Python

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 TtfFont

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

See Also

 Català