Python-bibliotek til læsning af skrifttyper
Open source Python API, der giver softwareudviklere og designere mulighed for nemt at manipulere, redigere og analysere skrifttyper.
FontTools spiller en afgørende rolle i design, branding og kommunikation, og skrifttyper er byggestenene i visuel æstetik. I den digitale æra er fontadministration og -manipulation blevet stadig vigtigere. Et kraftfuldt værktøj, der har opnået popularitet blandt udviklere og designere, er FontTools-biblioteket. FontTools er et alsidigt open source Python-bibliotek, der leverer et omfattende sæt af værktøjer til at arbejde med skrifttyper og er fremstået som et kraftfuldt redskab for fontentusiaster, designere, udviklere og typografer. Dets omfattende funktioner, kombineret med det Python-baserede interface, gør det til et fremragende valg til fontrelaterede opgaver og projekter.
FontTools er et open source-bibliotek, der gør det muligt for softwareudviklere at interagere med skrifttypefiler programmatisk. Det tilbyder et bredt udvalg af funktioner til manipulation, redigering og analyse af skrifttyper. Det understøtter funktioner som at manipulere skrifttyper på forskellige måder, grundlæggende glyfredigeringsoperationer, forbedret sammensmeltning af skrifttyper, fjernelse af enkelte glyffer, SFNT-tabelunderstøttelse, identificering og implementering af forskellige SFNT-værdier, ændring af glyfkonturer, justering af skrifttypemålinger, ændring af skrifttypekodning, tilføjelse eller fjernelse af tabeller, konvertering af layoutdefinitioner mellem forskellige layoutsystemer, finde og redigere navnestrenge osv.
FontTools-biblioteket giver softwareprogrammerere mulighed for programmatisk at få adgang til, redigere og analysere forskellige aspekter af skrifttypefiler. Det understøtter flere skrifttypeformater, herunder TrueType (TTF), OpenType (OTF), AFM, i nogen grad Type 1 og nogle Mac-specifikke formater, hvilket gør det til et alsidigt valg til arbejde med forskellige skrifttyper. FontTools drager fordel af et levende og støttende fællesskab. Projektet er open source og aktivt vedligeholdt, med regelmæssige opdateringer og fejlrettelser. Uanset om du automatiserer skrifttype-manipulation, finjusterer skrifttyper eller udfører detaljeret skrifttypeanalyse, leverer FontTools de nødvendige værktøjer og fleksibilitet til effektivt at nå dine mål.
Kom i gang med FontTools
FontTools kræver Python 3.8 eller nyere. Den anbefalede måde at installere FontTools på er via PyPI. Brug venligst følgende kommando for en problemfri installation.
Installer FontTools via NuGet
pip install fonttools Du kan også installere det manuelt; download de seneste udgivelsesfiler direkte fra GitHub-repositoryet.
Redigering og manipulation af skrifttyper via Python API
Det åbne FontTools-bibliotek er meget nemt at bruge og har inkluderet flere vigtige funktioner, der giver softwareudviklere mulighed for at manipulere skrifttyper på forskellige måder i deres Python-applikationer. Det giver dem mulighed for at udtrække information fra skrifttypefiler, ændre glyph‑konturer, manipulere metrik, og endda oprette nye skrifttyper fra bunden, automatisere gentagne skrifttype‑relaterede opgaver osv. Ved at bruge FontTools-biblioteket kan softwareudviklere også ændre glyph‑konturer, justere metrik, ændre kodning og tilføje eller fjerne tabeller. Denne fleksibilitet giver designere mulighed for at finjustere skrifttyper i henhold til specifikke krav eller skabe tilpassede versioner til deres projekter.
Hvordan modificerer man konturstier via Python API?
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 af glyphs via Python API
Det open source FontTools-bibliotek gør det nemt for softwareudviklere at manipulere individuelle glyphs programmatisk. Det giver metoder til at få adgang til og ændre glyphs konturer, metrik og attributter, hvilket giver brugerne fleksibilitet til at tilpasse skrifttyper efter deres specifikke behov. Uanset om det er justering af kerning-par, ændring af glyph-former, tilføjelse af ligaturer eller sammenligning af glyphs konturer, forenkler FontTools processen med glyph-manipulation. Det følgende eksempel viser, hvordan man sammenligner konturerne af to glyphs og viser resultaterne ved hjælp af Python-kode.
Hvordan sammenligner man konturerne af to glyphs ved hjælp af Python API?
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)
Generering og konvertering af skrifttyper via Python API
Det open source FontTools-bibliotek tilbyder funktioner til at generere nye skrifttypefiler eller konvertere eksisterende til forskellige formater. Denne funktion er især nyttig for designere og udviklere, der har brug for at skabe tilpassede skrifttyper eller tilpasse skrifttyper til specifikke platforme. Med FontTools kan brugere generere skrifttypeinstanser med forskellige vægte, stilarter og variationer, eller konvertere skrifttyper mellem TrueType- og OpenType-formater problemfrit. Det følgende eksempel viser, hvordan man konverterer CFF-format til CFF2-format ved hjælp af Python-kommandoer.