Introducción

Los datos de la letra (.ttfy su abismo de la tierra (.otfEs el font dominante. Los formatos en los sistemas operativos modernos. ambos formados comparten la misma estructura de tabla binaria en la especificación OpenType. Aspose.Font FOSS para Python expresa esta estructura A través de TtfFont, que proporciona acceso directo a las tablas OpenType individuales, los datos de pares de núcleos, variables de los áceros de la letra y las líneas de Glif.

El TtfFont La clase se extiende a la Font clase de base con métodos específicos TTF incluidos en los que se get_blob, get_table_bytes, set_table_bytes,y, instantiate Para la variable font El cerro de la aguja. el TtfTableSet La propiedad (ttf_tables• proporcionar acceso tipizado a la Las tablas de OpenType más comunes: head, hhea, maxp, os2, name, post.

La biblioteca se publica en Pypi como aspose-font Licenciado bajo la licencia MIT. No tiene dependencias comerciales obligatorias.


Características clave

Cargar Fontes TTF y OTF

Uso FontLoader.open Para cargar cualquier archivo de fontos TrueType o OpenTYpe:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

print(loaded.font_name)
print(loaded.font_family)
print(loaded.font_style)
print(loaded.num_glyphs)

FontLoader.open Detecta el formato de la letra del título de archivo. ambos .ttf (El verdadero tipo) y .otf (OpenType CFF) se apoyan los archivos y ambos devuelven un TtfFont de instancia.


Acceso a las tablas OpenType mediante TtfTableSet

El ttf_tables La propiedad devuelve a TtfTableSet Con accesorios para comúns Tablas de OpenType. Cada propiedad devolve el objeto de la tabla o None Si no hay:

El ttf_tables Propiedad en TtfFont Volver a TtfTableSet El caso. disponible Accesorios de mesa:

  • headHeadTable | None
  • hheaHheaTable | None
  • maxpMaxpTable | None
  • os2Os2Table | None
  • nameNameTable | None
  • postPostTable | None

Cada propiedad devolve el objeto de la tabla o None Si no está presente en la Archivo de la etiqueta: Acceso TtfTableSet Propiedades para comprobar las tablas específicas antes de leer Para las tablas no cubiertas por los accesorios nombrados, utilizar TtfTableSet.get_raw(tag) para Recuperar los bajos crudos con la etiqueta OpenType de cuatro caracteres.


Leer la mesa de los Bytes

get_table_bytes(tag) devolve los bajos crudos para cualquier tabla OpenType. get_blob(tag) para una variante sin seguridad que vuelve None Cuando la mesa no esté disponible:

TtfFont proporciona dos métodos para el acceso de mesa cruda:

  • get_table_bytes(tag) -> bytes - devolver los bajos crudos para una tabla nombrada (recibe si no)
  • get_blob(tag) -> bytes | None - Retorno None Si la tabla no está disponible (variante segura)

Ambos métodos aceptan una etiqueta de mesa OpenType de cuatro caracteres como: "cmap", "GDEF",o "GPOS".Uso de get_blob Cuando una tabla es opcional para que pueda comprobar None Antes de procesamiento .


Cuerpo de Nucleos

get_kern_pairs() devolver todos los pares de núcleos encriptados en el font. cada uno KernPair Ha tenido left (El de Glyphid), right (Glyphid) y value (En las unidades de font):

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

pairs = loaded.get_kern_pairs()
print(f"Kern pairs: {len(pairs)}")

for pair in pairs[:5]:
    print(f"  Left: {pair.left}  Right: {pair.right}  Value: {pair.value}")

Fontes Métriques

Las metrinas estándar son accesibles a través de la metrics Propiedad de la propiedad:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

metrics = loaded.metrics
print(f"Units per em  : {metrics.units_per_em}")
print(f"Ascender      : {metrics.ascender}")
print(f"Descender     : {metrics.descender}")
print(f"Line gap      : {metrics.line_gap}")
print(f"Underline pos : {metrics.underline_position}")

Soporte de Fontes Variables

Para las variables de los fuentes, TtfFont Exposiciones is_variable, variable_axes,y, named_instances.Uso de get_axis(tag) para recuperar un ácido específico por su cuarto letra El tag:

from aspose_font import FontLoader

loaded = FontLoader.open("fonts/RobotoFlex.ttf")

print(f"Is variable: {loaded.is_variable}")
print(f"Axes       : {len(loaded.variable_axes)}")

El get_axis(tag) El método en TtfFont Recupera a VariableAxis por su cuarto texto El Título (e.g. "wght" por el peso, "wdth" de la tierra. (de vuelta) None Si el ácido es No está presente en el font fvar Mesa de la mesa.


Convertir Fontes

to_bytes(font_type) Convertir el formato en un formato diferente.Utilizar la FontType Enum Para definir el objetivo:

from aspose_font import FontLoader, FontType

loaded = FontLoader.open("fonts/Roboto-Regular.ttf")

ttf_bytes = loaded.to_bytes(FontType.TTF)
with open("output/Roboto-copy.ttf", "wb") as fh:
    fh.write(ttf_bytes)

print(f"Serialized: {len(ttf_bytes)} bytes")

Inicio rápido

Instalar la biblioteca:

.venv/bin/pip install aspose-font

Cargue una letra TTF y inspecte:

from aspose_font import FontLoader, FontType

loaded = FontLoader.open("Roboto-Regular.ttf")

print(f"Font name : {loaded.font_name}")
print(f"Family    : {loaded.font_family}")
print(f"Glyphs    : {loaded.num_glyphs}")
print(f"Variable  : {loaded.is_variable}")

metrics = loaded.metrics
print(f"UPM       : {metrics.units_per_em}")

ttf_bytes = loaded.to_bytes(FontType.TTF)
print(f"Serialized: {len(ttf_bytes)} bytes")

Formatos apoyados

FormatoExtensionesLeerEscribe
TTF.TF
OTF.OTV
EOT.El EOT
CFF.cff
TYPE1.pfb / pfa
WOFF.Woff
WOFF2.El WooF2

Todos los formatos cargan a través de FontLoader.open. TTF/OTF fonts devolver a TtfFont de instancia.


Open Source y Licenciación

Aspose.Font FOSS for Python is released under the MIT License. You can use it in Proyectos personales, comerciales y de código abierto sin costo. el código fuente es disponible en GitHub y el paquete se distribuye a través de PyPI como: aspose-font.


Empezando a

Recursos relacionados