1. Продукти
  2.   Font
  3.   Python
  4.   FontTools
 
  

Бібліотека Python для читання шрифтів

Відкрита Python API, яка дає змогу розробникам програмного забезпечення та дизайнерам легко маніпулювати, редагувати та аналізувати шрифти.

FontTools відіграє важливу роль у дизайні, брендингу та комунікації, а шрифти є будівельними блоками візуальної естетики. У цифрову епоху управління шрифтами та їх маніпулювання стали все більш важливими. Потужний інструмент, який здобув популярність серед розробників та дизайнерів, — це бібліотека FontTools. FontTools — це універсальна бібліотека з відкритим кодом на Python, яка надає широкий набір інструментів для роботи зі шрифтами і стала потужним засобом для ентузіастів шрифтів, дизайнерів, розробників та типографів. Її обширний функціонал у поєднанні з інтерфейсом на Python робить її відмінним вибором для завдань, пов’язаних зі шрифтами.

FontTools — це бібліотека з відкритим кодом, яка дозволяє розробникам програмного забезпечення взаємодіяти з файлами шрифтів програмно. Вона пропонує широкий спектр функціональності для маніпулювання шрифтами, їх редагування та аналізу. Підтримуються такі можливості, як маніпулювання шрифтами різними способами, базові операції редагування гліфів, розширене об’єднання шрифтів, видалення окремих гліфів, підтримка таблиць SFNT, ідентифікація та впровадження різних значень SFNT, модифікація контурів гліфів, коригування метрик шрифту, зміна кодування шрифту, додавання або видалення таблиць, конвертація визначень розташування між різними системами розташування, пошук та редагування рядків імен тощо.

Бібліотека FontTools дає змогу програмістам програмно отримувати доступ, редагувати та аналізувати різні аспекти файлів шрифтів. Вона підтримує кілька форматів шрифтів, включаючи TrueType (TTF), OpenType (OTF), AFM, частково Type 1 та деякі специфічні для Mac формати, що робить її універсальним вибором для роботи з різними типами шрифтів. FontTools користується живою та підтримуючою спільнотою. Проект є відкритим вихідним кодом і активно підтримується, з регулярними оновленнями та виправленнями помилок. Незалежно від того, чи автоматизуєте ви маніпуляції зі шрифтами, тонко налаштовуєте гарнітури, чи проводите детальний аналіз шрифтів, FontTools надає необхідні інструменти та гнучкість для ефективного досягнення ваших цілей.

Previous Next

Початок роботи з FontTools

FontTools вимагає Python 3.8 або новішої версії. Рекомендований спосіб встановлення FontTools — використання PyPI. Будь ласка, використайте наступну команду для плавної інсталяції.

Встановити FontTools через NuGet

 pip install fonttools 

Ви також можете встановити його вручну; завантажте останні файли релізу безпосередньо з репозиторію GitHub.

Редагування та маніпулювання шрифтами за допомогою Python API

Відкрита бібліотека FontTools дуже проста у використанні та містить кілька важливих функцій, які дають змогу розробникам програмного забезпечення маніпулювати шрифтами різними способами у їхніх Python‑додатках. Вона дозволяє витягувати інформацію з файлів шрифтів, змінювати контури гліфів, маніпулювати метриками та навіть створювати нові шрифти з нуля, автоматизувати повторювані завдання, пов’язані зі шрифтами, тощо. Використовуючи бібліотеку FontTools, розробники можуть також змінювати контури гліфів, коригувати метрики, змінювати кодування та додавати або видаляти таблиці. Така гнучкість дозволяє дизайнерам точно налаштовувати шрифти відповідно до конкретних вимог або створювати індивідуальні версії для їхніх проєктів.

Як модифікувати контурні шляхи за допомогою 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()

Маніпулювання гліфами за допомогою Python API

Відкрита бібліотека FontTools полегшує розробникам програмного забезпечення маніпулювати окремими гліфами програмно. Вона надає методи доступу та зміни контурів гліфів, метрик та атрибутів, даючи користувачам гнучкість налаштовувати шрифти відповідно до їхніх конкретних потреб. Будь то налаштування пар кернінгу, зміна форм гліфів, додавання лігатур або порівняння контурів гліфів, FontTools спрощує процес маніпуляції гліфами. Наступний приклад показує, як порівняти контури двох гліфів і відобразити результати за допомогою коду Python.

Як порівняти контури двох гліфів за допомогою 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)

Генерація та конвертація шрифтів за допомогою Python API

Відкрита бібліотека FontTools пропонує функціональність для створення нових файлів шрифтів або конвертації існуючих у різні формати. Ця можливість особливо корисна для дизайнерів та розробників, які потребують створювати кастомні шрифти або адаптувати шрифти для конкретних платформ. За допомогою FontTools користувачі можуть генерувати інстанси шрифтів з різними вагою, стилями та варіаціями, або безшовно конвертувати шрифти між форматами TrueType та OpenType. Наступний приклад показує, як конвертувати формат CFF у формат CFF2 за допомогою команд Python.

 Українська