1. Des produits
  2.   Font
  3.   Python
  4.   FontTools
 
  

Bibliothèque Python pour la lecture de polices

API Python open source qui permet aux développeurs et aux designers de manipuler, éditer et analyser les polices facilement.

FontTools joue un rôle essentiel dans le design, le branding et la communication, et les polices sont les éléments de base de l’esthétique visuelle. À l’ère numérique, la gestion et la manipulation des polices sont devenues de plus en plus importantes. Un outil puissant qui a gagné en popularité auprès des développeurs et des designers est la bibliothèque FontTools. FontTools est une bibliothèque Python open source polyvalente qui offre un ensemble complet d’outils pour travailler avec les polices et s’est imposée comme un outil incontournable pour les passionnés de typographie, les designers, les développeurs et les typographes. Son ensemble de fonctionnalités étendu, associé à son interface basée sur Python, en fait un excellent choix pour les tâches et projets liés aux polices.

FontTools est une bibliothèque open-source qui permet aux développeurs de logiciels d'interagir avec les fichiers de polices de manière programmatique. Elle offre un large éventail de fonctionnalités pour la manipulation, l'édition et l'analyse des polices. Elle prend en charge des fonctionnalités telles que la manipulation des polices de diverses manières, les opérations d'édition de glyphes de base, la fusion améliorée des polices, la suppression de glyphes isolés, la prise en charge des tables SFNT, l'identification et la mise en œuvre de diverses valeurs SFNT, la modification des contours de glyphes, l'ajustement des métriques des polices, le changement du codage des polices, l'ajout ou la suppression de tables, la conversion des définitions de mise en page entre différents systèmes de mise en page, la recherche et l'édition des chaînes de noms, etc.

La bibliothèque FontTools permet aux programmeurs de logiciels d'accéder, de modifier et d'analyser de manière programmatique divers aspects des fichiers de polices. Elle prend en charge plusieurs formats de polices, notamment TrueType (TTF), OpenType (OTF), AFM, dans une certaine mesure Type 1, ainsi que certains formats spécifiques à Mac, ce qui en fait un choix polyvalent pour travailler avec différents types de polices. FontTools bénéficie d'une communauté dynamique et solidaire. Le projet est open source et activement maintenu, avec des mises à jour régulières et des corrections de bugs. Que vous automatisiez la manipulation de polices, ajustiez finement les caractères ou effectuiez une analyse détaillée des polices, FontTools fournit les outils et la flexibilité nécessaires pour atteindre vos objectifs efficacement.

Previous Next

Premiers pas avec FontTools

FontTools nécessite Python 3.8 ou une version ultérieure. La méthode recommandée pour installer FontTools est d'utiliser PyPI. Veuillez utiliser la commande suivante pour une installation fluide.

Installer FontTools via NuGet

 pip install fonttools 

Vous pouvez également l'installer manuellement ; téléchargez les fichiers de la dernière version directement depuis le dépôt GitHub.

Édition et manipulation de polices via l'API Python

La bibliothèque open FontTools est très facile à utiliser et comprend plusieurs fonctionnalités importantes qui permettent aux développeurs de logiciels de manipuler les polices de différentes manières dans leurs applications Python. Elle leur permet d'extraire des informations à partir des fichiers de polices, de modifier les contours des glyphes, de manipuler les métriques, et même de créer de nouvelles polices à partir de zéro, d'automatiser les tâches répétitives liées aux polices, etc. En utilisant la bibliothèque FontTools, les développeurs peuvent également modifier les contours des glyphes, ajuster les métriques, changer l'encodage et ajouter ou supprimer des tables. Cette flexibilité permet aux concepteurs d'affiner les polices selon des exigences spécifiques ou de créer des versions personnalisées pour leurs projets.

Comment modifier les chemins de contour via l'API 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()

Manipulation de glyphes via l'API Python

La bibliothèque open source FontTools facilite aux développeurs de logiciels la manipulation programmatique de glyphes individuels. Elle fournit des méthodes pour accéder et modifier les contours, les métriques et les attributs des glyphes, offrant aux utilisateurs la flexibilité de personnaliser les polices selon leurs besoins spécifiques. Que ce soit pour ajuster les paires de crénage, modifier les formes des glyphes, ajouter des ligatures ou comparer les contours des glyphes, FontTools simplifie le processus de manipulation des glyphes. L'exemple suivant montre comment comparer les contours de deux glyphes et afficher les résultats à l'aide de code Python.

Comment comparer les contours de deux glyphes en utilisant l'API 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)

Génération et conversion de polices via l'API Python

La bibliothèque open source FontTools offre des fonctionnalités pour générer de nouveaux fichiers de police ou convertir des fichiers existants en différents formats. Cette fonctionnalité est particulièrement utile pour les designers et développeurs qui doivent créer des polices personnalisées ou adapter des polices à des plateformes spécifiques. Avec FontTools, les utilisateurs peuvent générer des instances de police avec différentes épaisseurs, styles et variations, ou convertir des polices entre les formats TrueType et OpenType de manière fluide. L'exemple suivant montre comment convertir le format CFF en format CFF2 à l'aide de commandes Python.

 Français