Introducción
Aspose.Font FOSS for Python provides a coherent set of classes for every common Tarea de gestión de las fuentes: cargar archivos de fontos en varios formatos, leer metadados y datos de glif, conversión entre formatos, subsetting para la entrega web y limpieza tablas binarias para el tamaño óptimo del archivo. esta guía pasa a través de cada capacidad nuclear con ejemplos de código de trabajo extraídos de la API verificada de las bibliotecas.
El paquete (aspose-fontSe requiere Python 3.10+ y no tiene licencia MIT. Librería de las dependencias de la letra a nivel de OS. Instalarlo con pip install aspose-font>=1.0.0.
Características clave
Cargar Fonts con FontLoader
FontLoader es el único punto de entrada para todas las operaciones de carga de font. open() El método acepta un camino de archivo (str o Path) y detecta automáticamente el formato. load() el método acepta los bajos crudos para flujos de trabajo en memoria. ambos vuelven a Font- Tipo Objeto que puedes inspeccionar de inmediato.
from aspose_font.loader import FontLoader
# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")
# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
font_bytes = f.read()
font = FontLoader.load(font_bytes)
Leer Metadatos de Fontes a través de la clase Base de Fontos
Una vez que se carga, el Font La clase de base exponerá las propiedades metadatos estándar sin que le exigen para parse tablas de fontas binarias. las propiedades font_name, font_family, font_style,y, num_glyphs cubrir las necesidades de metadatos más comunes.
from aspose_font.loader import FontLoader
font = FontLoader.open("NotoSans-Regular.ttf")
print(f"Name: {font.font_name}")
print(f"Family: {font.font_family}")
print(f"Style: {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")
Glyph encriptando y accesando
FontEncoding Mapa Unicode puntos de código a Glyph IDs. unicode_to_gid() Para Un solo código o get_all_codepoints() para que se enumere la cubierta completa de los El font. GlyphAccessor Entonces se recupera los objetos de Glif por ID a través del get_glyph_by_id(), Unicode por medio de get_glyph_by_unicode(),o para un texto en la línea de get_glyphs_for_text().
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41) # 'A'
print(f"Glyph ID for 'A': {glyph_id}")
# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
# Inspect path commands
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Conversión de Font con FontConverter
FontConverter.convert() Convertir una letra cargada entre los formatos apoyados. fuente y el identificador de formato objetivo para obtener un nuevo objeto de font en el objetivo El método trata CFF, TTF, WOFF , Woff2, EOT y Tipo 1 como fuente y El objetivo.
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")
Optimización de la web con FontCleaner
FontCleaner.clean_for_web() Elimina las tablas binarias que no son necesarias para la web Entrega de fuentes —especialmente DSIG, FFTM y meta— y las líneas de la plataforma Mac (platform_id=1) El resultado es un binario más leño que reduce la red carga sin tocar las líneas de salida o las métricas. argumentos de palabras clave opcionales le permiten Conservar los tipos de mesa específicos si es necesario.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)
# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
font,
drop_metadata_tables=False,
drop_legacy_tables=True,
drop_mac_names=True,
)
Inspección de Glyph Path
Cada uno Glyph El objeto expone su salida como una GlyphPath cuyos commands Sequencia Contiene los tipos de MoveTo, LineTo, QuadraticTo, CurveTo,y, ClosePath.Cada comando lleva los atributos de coordenadas relevantes, por ejemplo:, CurveTo Ha tenido x1, y1, x2, y2, x, y - Permite extraer Bézier crudo datos para renderización, generación SVG o geometría de colisión.
from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")
Inicio rápido
pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")
Formatos apoyados
| Formato | Extensiones | Leer | Escribe |
|---|---|---|---|
| TTF | .TF | ✓ | ✓ |
| OTF | .OTV | ✓ | ✓ |
| CFF | .cff | ✓ | ✓ |
| TYPE1 | .pfb / pfa | ✓ | ✓ |
| WOFF | .Woff | ✓ | ✓ |
| WOFF2 | .El WooF2 | ✓ | ✓ |
| EOT | .El EOT | ✓ | ✓ |
Open Source y Licenciación
Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at Título: Ascensión de los datos.Font-FOSS-for-Python El paquete está en PyP como aspose-font.