Introducción
Aspose.Font FOSS for Python is a new open-source library that gives Python developers una guía completa de herramientas para trabajar con los archivos de fontos programáticamente. si necesita cargar un TTF para la inspección de glif, convertir un OTF en WOFF2 para el envío web, subsetar una letra a Reduce el tamaño de la carga, o genera previstas animadas de los áceros variables de las letras, la biblioteca Exponer una API unificada, libre de dependencia para todas estas tareas.
La biblioteca se publica en Pypi como aspose-font bajo la licencia de MIT. es necesario Python 3.10 o más tarde y no tiene dependencia en las bibliotecas de rendimiento de fontos a nivel de OS como: FreeType o HarfBuzz. Esto lo hace adecuado para los entornos de servidor sin cabeza, Los tubos CI y las cargas de trabajo contenidas donde la instalación de los fuentes del sistema es impractica.
Aspose.Font FOSS v1.0.0 supports loading fonts in TTF, OTF, CFF, Type 1, WOFF, WOFF2, y formatos EOT, con capacidad de exportación a los mismos conjuntos de formatas mediante FontConverter.
Lo que está incluido
Cargar fonts y acceder a metadatos
El FontLoader clase es el único punto de entrada para las fuentes de carga. llamado FontLoader.open() con un camino de archivo o bajetas crudas y la biblioteca detectará el formato automáticamente y devolver el objeto de la letra adecuada. una vez cargado, el Font La clase básica te da acceso para font_name, font_family, font_style, num_glyphs,y el mapa de codificación.
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name) # "Roboto"
print(font.font_family) # "Roboto"
print(font.num_glyphs) # number of glyphs in the font
Inspección de Glyph y acceso a los caminos
El GlyphAccessor clase le permite ver los glifos por un punto de código de Glif ID o Unicode a través del get_glyph_by_id() y get_glyph_by_unicode().Para resolver todos los glifos para una cadena de texto de una vez, uso get_glyphs_for_text().Cada uno Glyph El objeto exponerá su camino de salida como una secuencia de los mandos de ruta tipificados - MoveTo, LineTo, QuadraticTo, CurveTo,y, ClosePath - le dar acceso a los datos de Bézier crudo sin un motor de renderización.
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41) # Unicode code point for 'A'
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Subsistema de Fontes
FontSubsetter - Estrategias de multiplicación. uso subset_by_text() para Mantener sólo los glifos necesarios para una cadena específica, subset_by_gids() Para especificar el Glyph los datos de identificación directa, o subset_for_web() para aplicar una preseta web-optimizada que se cae rara vez Los glifos y las tablas. el analyze_coverage() El método le permite comprobar qué porcentaje de de la letra original, un subset cubre antes de comprometerse con ella.
from aspose_font.loader import FontLoader
from aspose_font.subsetter import FontSubsetter
font = FontLoader.open("NotoSans-Regular.ttf")
# Subset to the characters needed for a Latin-script page
result = FontSubsetter.subset_by_text(font, "Hello, World!")
Web Optimization
FontCleaner.clean_for_web() Riesgo DSIG, FFTM y tablas de meta y elimina Mac registro de nombre de la plataforma desde la tabla del nombre del fuente. el resultado es un menor binario que carga más rápido como una font web sin cambiar las líneas de salida o las métricas.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# stripped of legacy tables; ready for WOFF2 packaging
Variable Font Animation Previstas
Para las variables de los fuentes, AnimationPreviewBuilder puede generar un APNG animado que se deslizará un ácido desde un valor inicial a un final. build_axis_sweep() El método acepta El acero (por ejemplo, el., "wdth" o "wght"un cuadro, los cuadros por segundo y el bandera de bounce opcional que reversa la espuma para crear una animación en el giro. Es una AnimationAsset cuyos write_to() El método salva el APNG en disco.
from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder
font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
asset = AnimationPreviewBuilder.build_axis_sweep(
font,
axis_tag="wdth",
start_val=75.0,
end_val=100.0,
frames=3,
fps=10,
text="A",
size=10.0,
bounce=True,
)
asset.write_to("roboto-sweep-wdth.png")
Inicio rápido
Instalar la biblioteca de PyPI:
git clone https://github.com/aspose-font-foss/Aspose.Font-FOSS-for-Python.git
cd Aspose.Font-FOSS-for-Python
pip install -e .Luego cargue una letra y inspecte sus metadatos en algunas líneas:
from aspose_font.loader import FontLoader
font = FontLoader.open("MyFont.ttf")
print(f"Family: {font.font_family}")
print(f"Style: {font.font_style}")
print(f"Glyphs: {font.num_glyphs}")
# Look up a glyph by Unicode code point
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
print(f"Path commands for 'A': {len(glyph.path.commands)}")
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 published under the MIT license. You can use it in proyectos comerciales, modificarlo y distribuirlo libremente. el código fuente está disponible En el GitHub en Título: Ascensión de los datos.Font-FOSS-for-Python El paquete está disponible en PyPI como aspose-font.