Bibliotecă Python pentru citirea fonturilor
API Python open source care permite dezvoltatorilor de software și designerilor să manipuleze, să editeze și să analizeze fonturi cu ușurință.
FontTools joacă un rol esențial în design, branding și comunicare, iar fonturile sunt blocurile de bază ale esteticii vizuale. În era digitală, gestionarea și manipularea fonturilor au devenit din ce în ce mai importante. Un instrument puternic care a câștigat popularitate în rândul dezvoltatorilor și designerilor este biblioteca FontTools. FontTools este o bibliotecă Python open source versatilă care oferă un set cuprinzător de instrumente pentru lucrul cu fonturi și a devenit un instrument valoros pentru pasionații de fonturi, designeri, dezvoltatori și tipografi deopotrivă. Setul său extins de funcționalități, împreună cu interfața bazată pe Python, îl fac o alegere excelentă pentru sarcini și proiecte legate de fonturi.
FontTools este o bibliotecă open-source care permite dezvoltatorilor de software să interacționeze programatic cu fișierele de fonturi. Oferă o gamă largă de funcționalități pentru manipularea, editarea și analiza fonturilor. Suportă caracteristici precum manipularea fonturilor în diverse moduri, operații de bază de editare a glifelor, îmbunătățirea fuziunii fonturilor, eliminarea glifelor individuale, suport pentru tabele SFNT, identificarea și implementarea diferitelor valori SFNT, modificarea contururilor glifelor, ajustarea metricilor fontului, schimbarea codificării fontului, adăugarea sau eliminarea tabelelor, convertirea definițiilor de layout între diferite sisteme de layout, găsirea și editarea șirurilor de nume, etc.
Biblioteca FontTools oferă programatorilor de software posibilitatea de a accesa, edita și analiza programatic diverse aspecte ale fișierelor de fonturi. Suportă mai multe formate de fonturi, inclusiv TrueType (TTF), OpenType (OTF), AFM, într-o oarecare măsură Type 1 și unele formate specifice Mac, făcându‑la o alegere versatilă pentru lucrul cu diferite tipuri de fonturi. FontTools beneficiază de o comunitate vibrantă și de susținere. Proiectul este open source și este întreținut activ, cu actualizări regulate și remedieri de erori. Indiferent dacă automatizați manipularea fonturilor, rafinați tipografii sau efectuați analize detaliate ale fonturilor, FontTools furnizează instrumentele și flexibilitatea necesare pentru a vă atinge obiectivele eficient.
Începerea lucrului cu FontTools
FontTools necesită Python 3.8 sau o versiune ulterioară. Metoda recomandată pentru instalarea FontTools este prin PyPI. Vă rugăm să utilizați comanda următoare pentru o instalare fără probleme.
Instalați FontTools prin NuGet
pip install fonttools De asemenea, îl puteți instala manual; descărcați fișierele ultimei versiuni direct de pe depozitul GitHub.
Editarea și manipularea fonturilor prin API Python
Biblioteca open FontTools este foarte ușor de utilizat și include mai multe funcționalități importante care permit dezvoltatorilor de software să manipuleze fonturi în diverse moduri în cadrul aplicațiilor lor Python. Aceasta le permite să extragă informații din fișierele de font, să modifice contururile glifelor, să manipuleze metricile și chiar să creeze fonturi noi de la zero, să automatizeze sarcini repetitive legate de fonturi și altele. Folosind biblioteca FontTools, dezvoltatorii de software pot, de asemenea, să modifice contururile glifelor, să ajusteze metricile, să schimbe codarea și să adauge sau să elimine tabele. Această flexibilitate permite designerilor să ajusteze fin fonturile în funcție de cerințe specifice sau să creeze versiuni personalizate pentru proiectele lor.
Cum să modificați căile conturului prin 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()
Manipularea glifulor prin API Python
Biblioteca open source FontTools facilitează dezvoltatorilor de software manipularea programatică a glifelor individuale. Aceasta oferă metode pentru accesarea și modificarea contururilor glifelor, metricilor și atributelor, oferind utilizatorilor flexibilitatea de a personaliza fonturile în funcție de nevoile lor specifice. Fie că este vorba de ajustarea perechilor de kerning, modificarea formelor glifelor, adăugarea ligaturilor sau compararea contururilor glifelor, FontTools simplifică procesul de manipulare a glifelor. Exemplul următor arată cum să compari contururile a două glife și să afișezi rezultatele utilizând cod Python.
Cum să comparați contururile a două glife utilizând 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)
Generarea și conversia fonturilor prin API Python
Biblioteca open source FontTools oferă funcționalități pentru a genera fișiere de font noi sau pentru a converti cele existente în diferite formate. Această funcție este deosebit de utilă pentru designeri și dezvoltatori care trebuie să creeze fonturi personalizate sau să adapteze fonturile pentru platforme specifice. Cu FontTools, utilizatorii pot genera instanțe de font cu diferite greutăți, stiluri și variații, sau pot converti fonturile între formatele TrueType și OpenType fără probleme. Exemplul următor arată cum să convertești formatul CFF în formatul CFF2 utilizând comenzi Python.