Python-bibliotek för typsnittsavläsning
Öppen källkod Python-API som ger mjukvaruutvecklare och designers möjlighet att enkelt manipulera, redigera och analysera typsnitt.
FontTools spelar en avgörande roll inom design, varumärkesbyggande och kommunikation, och teckensnitt är byggstenarna i visuell estetik. I den digitala eran har teckensnittshantering och -manipulering blivit allt viktigare. Ett kraftfullt verktyg som har fått stor popularitet bland utvecklare och formgivare är FontTools‑biblioteket. FontTools är ett mångsidigt open source‑Python‑bibliotek som erbjuder ett omfattande verktygssats för arbete med teckensnitt och har blivit ett kraftfullt verktyg för teckensnittsentusiaster, designers, utvecklare och typografer likaså. Dess omfattande funktionsuppsättning, i kombination med dess Python‑baserade gränssnitt, gör det till ett utmärkt val för teckensnittsrelaterade uppgifter och projekt.
FontTools är ett open-source‑bibliotek som gör det möjligt för mjukvaruutvecklare att programatiskt interagera med teckensnittsfiler. Det erbjuder ett brett utbud av funktioner för teckensnittshantering, redigering och analys. Det stöder funktioner som att manipulera teckensnitt på olika sätt, grundläggande glyf‑redigeringsoperationer, förbättrad sammanslagning av teckensnitt, borttagning av enskilda glyfer, stöd för SFNT‑tabeller, identifiering och implementering av olika SFNT‑värden, modifiering av glyfkonturer, justering av teckensnittsmått, ändring av teckenkodning, tillägg eller borttagning av tabeller, konvertering av layoutdefinitioner mellan olika layoutsystem, samt att hitta och redigera namnsträngar, och så vidare.
FontTools-biblioteket ger mjukvaruprogrammerare möjlighet att programatiskt komma åt, redigera och analysera olika aspekter av teckensnitts‑filer. Det stöder flera teckensnittformat, inklusive TrueType (TTF), OpenType (OTF), AFM, till viss del Type 1, och vissa Mac‑specifika format, vilket gör det till ett mångsidigt val för att arbeta med olika teckensnittstyper. FontTools drar nytta av en livlig och stödjande gemenskap. Projektet är öppen källkod och aktivt underhållet, med regelbundna uppdateringar och buggfixar. Oavsett om du automatiserar teckensnittsmanipulation, finjusterar typsnitt eller utför detaljerad teckensnittsanalyser, erbjuder FontTools de nödvändiga verktygen och flexibiliteten för att effektivt uppnå dina mål.
Komma igång med FontTools
FontTools kräver Python 3.8 eller senare. Det rekommenderade sättet att installera FontTools är via PyPI. Använd följande kommando för en smidig installation.
Installera FontTools via NuGet
pip install fonttools Du kan också installera det manuellt; ladda ner de senaste release‑filerna direkt från GitHub.
Teckensnittsredigering och -manipulering via Python‑API
Det öppna FontTools-biblioteket är mycket enkelt att använda och har inkluderat flera viktiga funktioner som ger mjukvaruutvecklare möjlighet att manipulera teckensnitt på olika sätt i sina Python‑applikationer. Det låter dem extrahera information från teckensnittsfiler, modifiera glyfkonturer, manipulera mått och till och med skapa nya teckensnitt från grunden, automatisera repetitiva teckensnittsrelaterade uppgifter och så vidare. Genom att använda FontTools‑biblioteket kan mjukvaruutvecklare också ändra glyfkonturer, justera mått, ändra kodning och lägga till eller ta bort tabeller. Denna flexibilitet gör det möjligt för formgivare att finjustera teckensnitt enligt specifika krav eller skapa anpassade versioner för sina projekt.
Hur modifierar man konturvägar 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()
Glyfmanipulering via Python‑API
Det öppna källkodsbiblioteket FontTools gör det enkelt för mjukvaruutvecklare att manipulera enskilda glyfer programatiskt. Det tillhandahåller metoder för att komma åt och ändra glyfkonturer, mått och attribut, vilket ger användarna flexibiliteten att anpassa typsnitt enligt deras specifika behov. Oavsett om det handlar om att justera kerningpar, ändra glyfformer, lägga till ligaturer eller jämföra glyfkonturer, förenklar FontTools processen för glyfmanipulation. Följande exempel visar hur man jämför konturerna för två glyfer och visar resultaten med Python‑kod.
Hur jämför man konturerna av två glyfer med 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)
Teckensnittsgenerering och -konvertering via Python‑API
Det öppna källkodsbiblioteket FontTools erbjuder funktioner för att skapa nya teckensnitts‑filer eller konvertera befintliga till olika format. Denna funktion är särskilt användbar för formgivare och utvecklare som behöver skapa anpassade teckensnitt eller anpassa teckensnitt för specifika plattformar. Med FontTools kan användare generera teckensnittsinstanser med olika vikter, stilar och varianter, eller konvertera teckensnitt mellan TrueType‑ och OpenType‑format sömlöst. Följande exempel visar hur man konverterar CFF‑format till CFF2‑format med Python‑kommandon.