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

Biblioteka Pythona do odczytu czcionek

Otwarta API Pythona, która umożliwia programistom i projektantom łatwe manipulowanie, edytowanie i analizowanie czcionek.

FontTools odgrywa kluczową rolę w projektowaniu, brandingu i komunikacji, a czcionki są podstawowymi elementami wizualnej estetyki. W erze cyfrowej zarządzanie czcionkami i ich manipulacja stały się coraz ważniejsze. Jednym z potężnych narzędzi, które zyskało popularność wśród programistów i projektantów, jest biblioteka FontTools. FontTools to wszechstronna, otwarto‑źródłowa biblioteka Pythona, oferująca kompleksowy zestaw narzędzi do pracy z czcionkami i stała się potężnym narzędziem dla entuzjastów czcionek, projektantów, programistów i typografów. Rozbudowany zestaw funkcji, w połączeniu z interfejsem opartym na Pythonie, czyni go doskonałym wyborem do zadań i projektów związanych z czcionkami.

FontTools jest otwartoźródłową biblioteką, która umożliwia programistom oprogramowania interakcję z plikami czcionek programowo. Oferuje szeroki zakres funkcjonalności do manipulacji czcionkami, edycji i analizy. Obsługuje funkcje takie jak manipulowanie czcionkami na różne sposoby, podstawowe operacje edycji glifów, zaawansowane łączenie czcionek, usuwanie pojedynczych glifów, obsługa tabel SFNT, identyfikacja i implementacja różnych wartości SFNT, modyfikowanie konturów glifów, dostosowywanie metryk czcionki, zmiana kodowania czcionki, dodawanie lub usuwanie tabel, konwertowanie definicji układu między różnymi systemami układu, znajdowanie i edytowanie ciągów nazw i tak dalej.

Biblioteka FontTools umożliwia programistom oprogramowania programowe dostęp, edycję i analizę różnych aspektów plików czcionek. Obsługuje ona kilka formatów czcionek, w tym TrueType (TTF), OpenType (OTF), AFM, w pewnym stopniu Type 1 oraz niektóre formaty specyficzne dla Mac, co czyni ją wszechstronnym wyborem do pracy z różnymi typami czcionek. FontTools korzysta z żywej i wspierającej społeczności. Projekt jest open source i jest aktywnie utrzymywany, z regularnymi aktualizacjami i poprawkami błędów. Niezależnie od tego, czy automatyzujesz manipulację czcionkami, dopracowujesz kroje pisma, czy prowadzisz szczegółową analizę czcionek, FontTools dostarcza niezbędne narzędzia i elastyczność, aby skutecznie osiągnąć swoje cele.

Previous Next

Rozpoczęcie pracy z FontTools

FontTools wymaga Pythona 3.8 lub nowszego. Zalecanym sposobem instalacji FontTools jest użycie PyPI. Proszę użyć następującego polecenia, aby uzyskać płynną instalację.

Zainstaluj FontTools przez NuGet

 pip install fonttools 

Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z repozytorium GitHub.

Edycja i manipulacja czcionkami za pomocą API Pythona

Otwarta biblioteka FontTools jest bardzo łatwa w użyciu i zawiera kilka ważnych funkcji, które umożliwiają programistom manipulowanie czcionkami na różne sposoby w ich aplikacjach Python. Pozwala im na wyodrębnianie informacji z plików czcionek, modyfikowanie konturów glifów, manipulowanie metrykami oraz nawet tworzenie nowych czcionek od podstaw, automatyzację powtarzalnych zadań związanych z czcionkami i tak dalej. Korzystając z biblioteki FontTools, programiści mogą także modyfikować kontury glifów, dostosowywać metryki, zmieniać kodowanie oraz dodawać lub usuwać tabele. Ta elastyczność pozwala projektantom precyzyjnie dostosowywać czcionki do konkretnych wymagań lub tworzyć spersonalizowane wersje dla ich projektów.

Jak modyfikować ścieżki konturów za pomocą API Pythona?

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()

Manipulacja glifami za pomocą API Pythona

Otwarta biblioteka FontTools ułatwia programistom manipulację poszczególnymi glifami w sposób programowy. Dostarcza metody dostępu i modyfikacji konturów glifów, metryk i atrybutów, dając użytkownikom elastyczność dostosowywania czcionek do ich konkretnych potrzeb. Niezależnie od tego, czy chodzi o dostosowanie par kerningowych, zmianę kształtów glifów, dodawanie ligatur czy porównywanie konturów glifów, FontTools upraszcza proces manipulacji glifami. Poniższy przykład pokazuje, jak porównać kontury dwóch glifów i wyświetlić wyniki przy użyciu kodu w Pythonie.

Jak porównać kontury dwóch glifów przy użyciu API Pythona?

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)

Generowanie i konwersja czcionek za pomocą API Pythona

Otwarto‑źródłowa biblioteka FontTools oferuje funkcje generowania nowych plików czcionek lub konwertowania istniejących na różne formaty. Ta funkcja jest szczególnie przydatna dla projektantów i programistów, którzy muszą tworzyć niestandardowe czcionki lub dostosowywać czcionki do konkretnych platform. Dzięki FontTools użytkownicy mogą generować instancje czcionek o różnych wagach, stylach i wariantach lub konwertować czcionki pomiędzy formatami TrueType i OpenType bezproblemowo. Poniższy przykład pokazuje, jak skonwertować format CFF do formatu CFF2 przy użyciu poleceń Pythona.

 Polski