1. produkty
  2.   Font
  3.   Python
  4.   FontTools
 
  

Python knihovna pro čtení fontů

Open-source Python API, které umožňuje vývojářům softwaru a designérům snadno manipulovat, upravovat a analyzovat fonty.

FontTools hraje zásadní roli v designu, brandingu a komunikaci a fonty jsou stavebními kameny vizuální estetiky. V digitální éře se správa a manipulace s fonty staly stále důležitějšími. Jedním z výkonných nástrojů, který získal popularitu mezi vývojáři a designéry, je knihovna FontTools. FontTools je všestranná open source knihovna v Pythonu, která poskytuje komplexní sadu nástrojů pro práci s fonty a stala se silným nástrojem pro nadšence do fontů, designéry, vývojáře i typografy. Její rozsáhlá funkčnost v kombinaci s rozhraním založeným na Pythonu z ní činí vynikající volbu pro úkoly a projekty související s fonty.

FontTools je open-source knihovna, která umožňuje vývojářům softwaru programově pracovat s fontovými soubory. Nabízí širokou škálu funkcí pro manipulaci s fonty, jejich úpravu a analýzu. Podporuje funkce jako manipulace s fonty různými způsoby, základní operace úpravy glyfů, vylepšené slučování fontů, odstraňování jednotlivých glyfů, podpora SFNT tabulek, identifikace a implementace různých SFNT hodnot, úprava kontur glyfů, úprava metrik fontu, změna kódování fontu, přidávání nebo odstraňování tabulek, převod definic rozvržení mezi různými systémy rozvržení, vyhledávání a úprava řetězců názvů a podobně.

Knihovna FontTools umožňuje programátorům softwaru programově přistupovat, upravovat a analyzovat různé aspekty souborů písem. Podporuje několik formátů písem, včetně TrueType (TTF), OpenType (OTF), AFM, do určité míry Type 1 a některých formátů specifických pro Mac, což z ní činí univerzální volbu pro práci s různými typy písem. FontTools těží z živé a podporující komunity. Projekt je open source a aktivně udržován, s pravidelnými aktualizacemi a opravami chyb. Ať už automatizujete manipulaci s písmy, dolaďujete typografii nebo provádíte podrobnou analýzu písem, FontTools poskytuje potřebné nástroje a flexibilitu k efektivnímu dosažení vašich cílů.

Previous Next

Začínáme s FontTools

FontTools vyžaduje Python 3.8 nebo novější. Doporučený způsob instalace FontTools je pomocí PyPI. Použijte prosím následující příkaz pro hladkou instalaci.

Instalace FontTools přes NuGet

 pip install fonttools 

Můžete jej také nainstalovat ručně; stáhněte nejnovější soubory vydání přímo z úložiště GitHub.

Úprava a manipulace s fonty pomocí Python API

Otevřená knihovna FontTools je velmi snadno použitelná a obsahuje několik důležitých funkcí, které umožňují vývojářům softwaru manipulovat s fonty různými způsoby v jejich Python aplikacích. Umožňuje jim získávat informace z fontových souborů, upravovat obrysy glyfů, manipulovat s metrikami a dokonce vytvářet nové fonty od nuly, automatizovat opakující se úkoly související s fonty a podobně. Pomocí knihovny FontTools mohou vývojáři softwaru také upravovat kontury glyfů, nastavovat metriky, měnit kódování a přidávat nebo odstraňovat tabulky. Tato flexibilita umožňuje designérům doladit fonty podle konkrétních požadavků nebo vytvořit přizpůsobené verze pro jejich projekty.

Jak upravit cesty obrysu pomocí 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()

Manipulace s glyfy pomocí Python API

Otevřená knihovna FontTools usnadňuje vývojářům softwaru programově manipulovat s jednotlivými glyfy. Poskytuje metody pro přístup a úpravu obrysů glyfů, metrik a atributů, což uživatelům dává flexibilitu přizpůsobit písma podle jejich konkrétních potřeb. Ať už jde o úpravu párování kerningu, změnu tvarů glyfů, přidávání ligatur nebo porovnání obrysů glyfů, FontTools zjednodušuje proces manipulace s glyfy. Následující příklad ukazuje, jak porovnat obrysy dvou glyfů a zobrazit výsledky pomocí Python kódu.

Jak porovnat obrysy dvou glyfů pomocí 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)

Generování a konverze fontů pomocí Python API

Otevřená knihovna FontTools nabízí funkce pro generování nových souborů písem nebo převod existujících do různých formátů. Tato funkce je zvláště užitečná pro designéry a vývojáře, kteří potřebují vytvářet vlastní písma nebo přizpůsobovat písma pro konkrétní platformy. S FontTools mohou uživatelé generovat instance písem s různými tloušťkami, styly a variantami nebo bezproblémově převádět písma mezi formáty TrueType a OpenType. Následující příklad ukazuje, jak převést formát CFF na formát CFF2 pomocí příkazů v Pythonu.

 Čeština