Cómo trabajar con las fontas WOFF en Python

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 FontType

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

Ver también

 Español