Cómo trabajar con las Fontes TTF en Python
Este guía muestra cómo cargar las fuentes TTF, inspeccionar TtfFont propiedades, tablas de lectura, fuentes variables instantáneas y conversiones a otros formatos utilizando Aspose.Font FOSS para Python..ttf) son el formato de fontos más común. Aspose.Font FOSS las carga como TtfFont instantes, dando acceso a tablas, ácido de fontas variables, datos de glif y utilidades de conversión.
Guía paso a paso
Paso 1: Instalar el paquete
Instalar el paquete Aspose.Font FOSS de PyPI utilizando el comando pip a continuación:
pip install "aspose-font>=1.0.0"Paso 2: Importar las clases necesarias
Importación FontLoader y TtfFont para cargar una fuente TTF y acceder a sus propiedades tipadas:
from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFontPaso 3: Cargar y inspeccionar una font TTF
Cargar un archivo TTF utilizando FontLoader.open() y leer las propiedades básicas como nombre, familia y cuento de grif:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)Paso 4: Leer la tabla de kern
Acceso a la ttf_tables Propiedad y comprobar la presencia de la tabla del núcleo por nombre:
ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)Paso 5: Instalar una font variable
Cargar un archivo de fuente variable, verifique is_variable,Y llamar instantiate() con un dicionario de ácido para producir una instancia 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)Paso 6: Convertir en WOFF2
Convertir una letra TTF cargada en formato WOFF2 al pasar FontType.WOFF2 para 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)Problemas y soluciones comunes
AttributeError: Font has no attribute ttf_tables - Uso de ttf_font: TtfFont = FontLoader.open(...). El ttf_tables La propiedad está en TtfFont,No la base Font.
is_variable Es falso en una font variable - Algunas fuentes variables usan un no estándar. fvar Título de la tabla.Check ttf_font.fvar is not None como una alternativa.
instantiate() Aumentar KeyError - La etiqueta de ácido debe ser una etiquetas registrada de 4 carros (El g. "wght", "wdth"• Verificar ttf_font.axes para los tags disponibles.
Preguntas frecuentes
¿Cuál es la diferencia entre TTF y OTF?
OTF y TTF comparten el mismo contenedor binario (SFNT). las fuentes de OT F normalmente utilizan las líneas de salida CFF mientras las fuentes TTF utilizan curvas cuadráticas TrueType. ambos son cargados por FontLoader.open().
¿Puedo obtener pares de núcleos desde una fuente TTF?
Sí, usamos TtfFont.get_kern_pairs() Para obtener una lista de KernPair Objetos →.
¿La biblioteca apoya las colecciones de fuentes (.ttc)?
Sí, usamos FontLoader.open(source, collection_index=N) Para seleccionar un formato específico de El archivo de la colección TTC.