Cómo trabajar con las fontas WOFF en Python
Este guía muestra cómo cargar, inspeccionar y convertir las fuentes web de WOFF y Woff2 utilizando Aspose.Font FOSS para Python.WOFf (Web Open Font Format) es el estándar para entregar fuente en la web. WIFF 1 utiliza compresión zlib y wIF F 2 usa composición Brotli, tanto envuelve una fuego TrueType o CFF subyacente.
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, FontConverter,y, FontType Para cargar y convertir las fuentes WOFF:
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontTypePaso 3: Cargar y inspeccionar una font WOFF
Cargar un archivo WOFF con FontLoader.open() y leer las propiedades básicas como nombre, familia y cuento de grif:
from aspose_font.loader import FontLoader
woff_font = FontLoader.open("MyFont.woff")
print(f"Name: {woff_font.font_name}")
print(f"Family: {woff_font.font_family}")
print(f"Glyphs: {woff_font.num_glyphs}")
print(f"Type: {woff_font.font_type}")Paso 4: Leer los metadatos WOFF
Los archivos de WOFF pueden contener un bloque de metadatos XML con licencia, créditos y La información. Acceso a través de la metadata_xml propiedad .
from aspose_font.loader import FontLoader
font = FontLoader.open("MyFont.woff")
# WOFF fonts may include an XML metadata block
xml = getattr(font, "metadata_xml", None)
if xml:
print(xml)
else:
print("No metadata in this WOFF file")Paso 5: Acceso a las tablas TTF interiores
Ambos WoffFont y Woff2Font Exponer una inner_font Propiedad que se da Tú, el subyacente TtfFont.A través de ella puede acceder a todos los estándares. Taller de OpenType.
from aspose_font.loader import FontLoader
font = FontLoader.open("MyFont.woff")
# WOFF wraps a TrueType font; access its tables via inner_font
inner = getattr(font, "inner_font")
tables = inner.ttf_tables
print(f"Units/em: {tables.head.units_per_em}")
print(f"Family name: {tables.name.best_name(1)}")Paso 6: Convertir TTF en WOFF
Cargue una letra TTF y la converte en formato WOFF al pasar FontType.WOFF para FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
ttf_font = FontLoader.open("MyFont.ttf")
woff_font = FontConverter.convert(ttf_font, FontType.WOFF)
woff_bytes = woff_font.to_bytes()
from pathlib import Path
Path("MyFont.woff").write_bytes(woff_bytes)Paso 7: Convertir TTF en WOFF2
Cargue una letra TTF y la converte 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
ttf_font = FontLoader.open("MyFont.ttf")
woff2_font = FontConverter.convert(ttf_font, FontType.WOFF2)
woff2_bytes = woff2_font.to_bytes()
from pathlib import Path
Path("MyFont.woff2").write_bytes(woff2_bytes)Paso 8: Convertir entre WOFF y WofF2
Convertir un archivo de WOFF cargado en WofF2 (o viceversa) al pasar el objetivo. FontType para FontConverter.convert():
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType
# WOFF -> WOFF2
woff_font = FontLoader.open("MyFont.woff")
woff2_font = FontConverter.convert(woff_font, FontType.WOFF2)
# WOFF2 -> WOFF
woff2_font = FontLoader.open("MyFont.woff2")
woff_font = FontConverter.convert(woff2_font, FontType.WOFF)Problemas y soluciones comunes
FontParseException: Invalid WOFF signature El archivo no es un WOFF válido. Verificar que el archivo no está corrompido y comienza con los bajos mágicos de WOFF.
FontParseException: WOFF table decompression failed - Una mesa comprimida dentro del archivo WOFF está corrompido. trate de re-download el archivos de font.
Gran rendimiento WOFF2 — WOFF2 utiliza la composición de Brotli que produce más pequeños archivos que no son WOFF 1 (zlib). si su rendimiento de Woff2 es inesperadamente grande, asegúrese Comenzas con una fuente optimizada de TTF.
Preguntas frecuentes
¿Cuál es la diferencia entre WOFF y Woff2?
WOFF 1 utiliza la composición de zlib y Woff 2 usa la Compresión de Brotli.WOF F2 obtiene un 20-30% mejor compresión que WIF 1.Tanto se encienden los mismos datos de fontas TrueType o CFF subyacentes.
¿Puedo acceder a las tablas de fuentes desde un archivo WOFF?
Sí, usamos el inner_font Propiedad para obtener el subyacimiento TtfFont,Y luego Taller de acceso a través inner_font.ttf_tables.
¿La biblioteca apoya los metadatos WOFF?
Sí, ambos WoffFont y Woff2Font Exponer a metadata_xml Propiedad Contiene el bloque de metadatos XML opcional.