Biblioteca Python para la lectura de fuentes
API Python de código abierto que permite a desarrolladores de software y diseñadores manipular, editar y analizar fuentes con facilidad.
FontTools desempeña un papel vital en el diseño, la marca y la comunicación, y las fuentes son los bloques de construcción de la estética visual. En la era digital, la gestión y manipulación de fuentes se han vuelto cada vez más importantes. Una herramienta poderosa que ha ganado popularidad entre desarrolladores y diseñadores es la biblioteca FontTools. FontTools es una biblioteca de Python de código abierto y versátil que ofrece un conjunto completo de herramientas para trabajar con fuentes y se ha convertido en una herramienta poderosa para entusiastas de las fuentes, diseñadores, desarrolladores y tipógrafos por igual. Su amplio conjunto de funciones, junto con su interfaz basada en Python, la convierten en una excelente opción para tareas y proyectos relacionados con fuentes.
FontTools es una biblioteca de código abierto que permite a los desarrolladores de software interactuar con archivos de fuentes de forma programática. Ofrece una amplia gama de funcionalidades para la manipulación, edición y análisis de fuentes. Soporta características como manipular fuentes de diversas maneras, operaciones básicas de edición de glifos, fusión mejorada de fuentes, eliminación de glifos individuales, soporte de tablas SFNT, identificación e implementación de varios valores SFNT, modificación de contornos de glifos, ajuste de métricas de fuentes, cambio de codificación de fuentes, agregar o eliminar tablas, convertir definiciones de diseño entre diferentes sistemas de diseño, encontrar y editar cadenas de nombres, entre otros.
La biblioteca FontTools permite a los programadores de software acceder, editar y analizar programáticamente varios aspectos de los archivos de fuentes. Soporta varios formatos de fuentes, incluidos TrueType (TTF), OpenType (OTF), AFM, en cierta medida Type 1 y algunos formatos específicos de Mac, lo que la convierte en una opción versátil para trabajar con diferentes tipos de fuentes. FontTools se beneficia de una comunidad vibrante y solidaria. El proyecto es de código abierto y se mantiene activamente, con actualizaciones regulares y correcciones de errores. Ya sea que esté automatizando la manipulación de fuentes, afinando tipografías o realizando un análisis detallado de fuentes, FontTools proporciona las herramientas y la flexibilidad necesarias para lograr sus objetivos de manera eficiente.
Comenzando con FontTools
FontTools requiere Python 3.8 o posterior. La forma recomendada de instalar FontTools es usando PyPI. Por favor, use el siguiente comando para una instalación sin problemas.
Instalar FontTools mediante NuGet
pip install fonttools También puede instalarlo manualmente; descargue los archivos de la última versión directamente del repositorio GitHub.
Edición y Manipulación de Fuentes mediante la API de Python
La biblioteca abierta FontTools es muy fácil de usar y ha incluido varias características importantes que permiten a los desarrolladores de software manipular fuentes de diversas maneras dentro de sus aplicaciones Python. Les permite extraer información de archivos de fuentes, modificar contornos de glifos, manipular métricas e incluso crear nuevas fuentes desde cero, automatizar tareas repetitivas relacionadas con fuentes, etc. Al usar la biblioteca FontTools, los desarrolladores de software también pueden modificar contornos de glifos, ajustar métricas, cambiar la codificación y añadir o eliminar tablas. Esta flexibilidad permite a los diseñadores afinar las fuentes según requisitos específicos o crear versiones personalizadas para sus proyectos.
¿Cómo modificar rutas de contorno mediante la API de Python?
path_orig = get_outline(font, "a")
startdraw(200,200)
paths = []
for i in path_orig:
if i[0] == 'moveTo':
path = draw.BezierPath()
path.moveTo((i[1][0]))
if i[0] == 'lineTo':
path.lineTo((i[1][0]))
if i[0] == 'qCurveTo':
path.qCurveTo(*(i[1]))
if i[0] == 'closePath':
path.closePath()
paths.append(path)
finalpath = paths[0].difference(paths[1])
finalpath.scale(0.3) #let's scale it down!
draw.fill(0.5)
draw.stroke(0)
draw.drawPath(finalpath)
show()
Manipulación de Glifos mediante la API de Python
La biblioteca de código abierto FontTools facilita a los desarrolladores de software manipular glifos individuales de forma programática. Proporciona métodos para acceder y modificar los contornos de los glifos, métricas y atributos, ofreciendo a los usuarios la flexibilidad de personalizar fuentes según sus necesidades específicas. Ya sea ajustando pares de kerning, cambiando la forma de los glifos, añadiendo ligaduras o comparando los contornos de los glifos, FontTools simplifica el proceso de manipulación de glifos. El siguiente ejemplo muestra cómo comparar los contornos de dos glifos y mostrar los resultados usando código Python.
¿Cómo comparar los contornos de dos glifos usando la API de Python?
from fontTools.ttLib import TTFont
from fontTools.pens.recordingPen import RecordingPen
font = TTFont(filename)
cmap = font.getBestCmap()
gs = font.getGlyphSet()
g1 = gs[cmap[ord("A")]]
g2 = gs[cmap[ord("B")]]
p1 = RecordingPen()
p2 = RecordingPen()
g1.draw(p1)
g2.draw(p2)
print(p1.value == p2.value)
Generación y Conversión de Fuentes mediante la API de Python
La biblioteca de código abierto FontTools ofrece funcionalidades para generar nuevos archivos de fuentes o convertir los existentes a diferentes formatos. Esta característica es particularmente útil para diseñadores y desarrolladores que necesitan crear fuentes personalizadas o adaptar fuentes a plataformas específicas. Con FontTools, los usuarios pueden generar instancias de fuentes con diferentes pesos, estilos y variaciones, o convertir fuentes entre los formatos TrueType y OpenType sin problemas. El siguiente ejemplo muestra cómo convertir el formato CFF al formato CFF2 usando comandos Python.