1. Productos
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS for Python

Biblioteca Python de código abierto para cargar, inspeccionar, convertir y crear subconjuntos de archivos de fuentes TTF, OTF, CFF, WOFF, WOFF2 y EOT.

Trabajar con Fonts Programticamente en Python

Aspose.Font FOSS para Python es un conjunto de herramientas pure-Python para cargar, inspeccionar, convertir, subestablecer y previsualizar fuentes en los formatos TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 y EOT. La biblioteca se ejecuta en Python 3.10 o posterior y no requiere bibliotecas de fuentes del SO externas ni dependencias nativas.

La biblioteca expone una API limpia para la carga de fuentes a través de FontLoader, acceso a glifos a través de GlyphAccessor, conversión de formatos a través de FontConverter, optimización web a través de FontCleaner, subestablecimiento consciente del texto a través de FontSubsetter, y animación de fuentes variables a través de AnimationPreviewBuilder. Los metadatos de la fuente, como nombre, familia, estilo, recuento de glifos, codificación y métricas, son accesibles mediante la clase base Font sin analizar manualmente las tablas binarias.

Aspose.Font FOSS tiene licencia MIT y se puede instalar desde PyPI con un único comando pip install. Es adecuado para herramientas de diseño de fuentes, canalizaciones de fuentes web, motores de renderizado de glifos y cualquier aplicación Python que necesite leer, transformar o producir archivos de fuentes. Para la familia de productos empresariales, consulte Aspose.Font — Enterprise Product Family.

Carga de fuentes y detección de formatos

  • Cargar las fuentes de los caminos de archivo o bajas crudas con FontLoader.open() y FontLoader.load()
  • Detectar automáticamente los formatos: TTF, OTF y CFF, WOFF o Woff, EOT o Type 1
  • Acceso a los metadatos de la letra a través de las clases básicas Font: font_name, font_family , font_style y num_glyphs
  • Leer los mapas de codificación glif con FontEncoding.unicode_to_gid() y get_all_codepoints()
  • Inspecciona las metrinas de la letra con FontMetrics: ascenso, descenso y línea, em-square

Casos típicos de uso

  • Validación de Fontes y Pipe de Extracción Metadatos
  • CI/CD verifica el nombre de la familia de las letras y el número de los glyph
  • Servicios de ingestión de fontas web que aceptan varios formatos de entrada
  • herramientas de diseño de font que muestran metadatos sin un tiempo de trabajo de escritorio

Glyph Acceso y Inspección de Path

  • Recuperar glifos por ID o Unicode con GlyphAccessor.get_glyph_by_id() y get_glyph_by_unicode()
  • Resolver todos los glifos de una cadena con GlyphAccessor.get_glyphs_for_text()
  • Inspeccionar rutas de contorno de glifos como comandos tipados: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Acceder a la caja delimitadora del glifo, el ancho de avance y los márgenes laterales desde las propiedades Glyph
  • Leer pares de kerning desde KernPair para cálculos precisos de disposición de texto

Casos típicos de uso

  • Glyph verifica la cobertura para renderización de texto multilingüe
  • Extracción de salida para el camino SVG o la generación vector
  • Validación de tablas en los flujos de trabajo QA
  • La investigación de forma de texto y la experimentación de layout bajo nivel

Conversión de Fontes

  • Convertir entre TTF, OTF y CFF, WOFF o Woff2, EOT y Tipo 1 con FontConverter.convert()
  • Adaptar los tipos de curva Bezier con CurveAdapter.quad_to_cubic() y cubic_to_quads()
  • Convertir los caminos de glif entre cuadrado y cubo con convert_path_quad_to_cubic() y convert_path_cubic_to_quad()

Casos típicos de uso

  • Púplinas de fontas web que converten las letras principales TTF a WOFF2 para la distribución
  • Tipo de herramienta que exporta a múltiples objetivos de formato desde una fuente
  • Conversión de EOT Legacy para las pistas de fuente web compatibles con el retroceso
  • Normalizar el formato de la letra automática en integración continua

Subsistema de Fontes

  • Subseta las fuentes por texto Unicode con FontSubsetter.subset_by_text()
  • Subsituido por el listado de ID glyph con FontSubsetter.subset_by_gids()
  • Produce subset optimizado web con FontSubsetter.subset_for_web()
  • Aplique los perfiles de pre-sitio con FontSubsetter.subset_by_presets() y available_presets()
  • Analizar la cobertura de subset con FontSubsetter.analyze_coverage() y analyze_web_coverage()

Casos típicos de uso

  • Reducción de la carga WOFF2 para páginas web con conjuntos limitados de caracteres
  • Producción de subsetes de fuentes específicos para los desplegadores i18n
  • Flujos de trabajo que distribuyen subset por página
  • Optimización de la rendimiento para aplicaciones web móviles

Optimización web y previsión de fontos variables

  • Tablas de herencia de rincón y registros de nombres de Mac con FontCleaner.clean_for_web()
  • Verificar la compatibilidad de los ángulos variables con CompatibilityChecker.compare_fonts() y compare_variable_instances()
  • Generar ácido APNG animado con AnimationPreviewBuilder.build_axis_sweep()
  • Construye caminos de animación multi-step con AnimationPreviewBuilder.build_path()

Casos típicos de uso

  • Páginas de muestra de fontos y exploradores de ácido interactivo para fundamentos de tipo
  • CI tuberías que verifican el comportamiento de la letra variable antes de distribuir
  • Púplinas de rendimiento web que caen tablas binarias no esenciales
  • Temas de previsión de font para aplicaciones de gestión de fuentes

Cargar un archivo de font

Abra una fontana TrueType o OpenTYpe de un camino de archivo y leer sus metadatos básicos.

from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name)    # e.g. "Roboto"
print(font.font_family)  # e.g. "Roboto"
print(font.num_glyphs)   # e.g. 1294

Glyphs de acceso para una cinta de texto

Resolve todos los glifos para un punto de código Unicode y inspecciona sus caminos de salida.

from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41)  # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
    print(type(cmd).__name__, cmd)

Generar una variable de la animación del ácido fontico

Crea un APNG animado que suele un ácido de la letra variable desde el inicio hasta el valor final.

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")

Limpiar una font para el despliegue web

Taller de legado y registros de nombres de Mac para reducir el tamaño binario antes de la web.

from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped

Preguntas frecuentes

¿Qué es Aspose.Font FOSS para Python?

Es una biblioteca de Python pura gratuita, licenciada por MIT para cargar, inspeccionar, convertir y subsentar las letras en los formatos TTF, OTF y CFF, tipo 1, WOFF o Woff.

¿Cómo puedo instalar Aspose.Font FOSS para Python?

Ejecute pip install "aspose-font>=1.0.0". No se necesitan dependencias a nivel del sistema. La biblioteca funciona en Windows, macOS y Linux con Python 3.10 o posterior.

¿Qué formatos de fontas se apoyan?

FontLoader.open() lee TTF, OTF y CFF, tipo 1, WOFF o Woff. FontConverter.convert() escribe TT F, Cff, WIFF e WUF2.

¿Es disponible el font.to_bytes()?

No. Font.to_bytes() no se implementa en la clase de base. Utilice FontConverter.convert() para producir un nuevo Font en el formato deseado.

¿Puedo subsanar una font para la entrega web?

Sí. FontSubsetter.subset_by_text(font, text) devolve un nuevo Font que contiene únicamente los glifos necesarios para el texto dado.FontSubsetter.subset(font, codepoints) y subset_by_gids(font, gids) dan control más fino.

  

Recursos de soporte y aprendizaje

 Español