Як працювати з шрифтами TTF в Python

Як працювати з шрифтами TTF в Python

У цьому керівництві показано, як завантажити шрифти TTF. TtfFont властивості, читання таблиць, інстанціатування змінних шрифтів і конвертування до інших формат з використанням Aspose.Font FOSS для Python. Шрифти TrueType (.ttf) є найбільш поширеним форматом шрифту. Aspose.Font FOSS завантажує їх як TtfFont інстанції, що дають доступ до таблиць, змінних осі шрифтів, даних гліфа та утільних для конвертації.

Крок за кроком посібник

Крок 1: Налаштування пакету

Інсталювати пакет Aspose.Font FOSS з PyPI за допомогою нижче наведеної команди pip:

pip install "aspose-font>=1.0.0"

Крок 2: Необхідні класи імпорту

Import FontLoader і TtfFont завантажити шрифт TTF та отримати доступ до його властивостей типового типу:

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

Крок 3: Завантажити і перевірити шрифт TTF

Завантажити файл TTF з використанням: FontLoader.open() і читати основні властивості, такі як ім’я, родина та число слів:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
print(ttf_font.font_name)
print(ttf_font.font_family)
print(ttf_font.num_glyphs)

Крок 4: Читайте таблицю ядра .

Доступ до ttf_tables властивість та перевірка наявності таблиці ядра за назвою:

ttf_font: TtfFont = FontLoader.open("Roboto-Regular.ttf")
kern = ttf_font.ttf_tables.kern
print("kern present:", kern is not None)

Крок 5: Інстанціонувати змінний шрифт

Завантажити файл змінного шрифта, перевірити is_variable, і подзвонить instantiate() з словником осі для створення статичної інстанції:

from aspose_font.loader import FontLoader
from aspose_font.ttf.font import TtfFont

ttf_font: TtfFont = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
if ttf_font.is_variable:
    static = ttf_font.instantiate({"wght": 700.0})
    print("Instantiated:", static.font_name)

Крок 6: Конвертування до WOFF2

Переймінити завантажений шрифт TTF у формат WOFF2 шляхом проходження FontType.WOFF2 до FontConverter.convert():

from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
from aspose_font import FontType

font = FontLoader.open("Roboto-Regular.ttf")
woff2 = FontConverter.convert(font, FontType.WOFF2)

Загальні проблеми та рішення

AttributeError: Font has no attribute ttf_tables Використання ttf_font: TtfFont = FontLoader.open(...). У. ttf_tables майно знаходиться на TtfFont, не основа . Font.

is_variable є False на змінному шрифті Деякі змінні шрифти використовують нестандартний шрифт. fvar Формат таблиці. Перевірка ttf_font.fvar is not None як альтернатива.

instantiate() піднімає KeyError Знак осі повинен бути зареєстрованим знаком 4-ка. (наприклад,. "wght", "wdth"). Перевірка ttf_font.axes для доступних тег.

Часто задавані запитання

У чому різниця між ТТФ та ОТF?

OTF і TTF мають один та той же двоякісний контейнер (SFNT). Шрифти OFT зазвичай використовують очертані CFF. а TTF шрифти використовують квадратичної кривої TrueType. Обидва завантажені на FontLoader.open().

Чи можна отримати пара ядра з шрифту TTF?

Так, використовуйте. TtfFont.get_kern_pairs() щоб отримати список KernPair об’єкти.

Чи підтримує бібліотека колекції шрифтів (.ttc)?

Так, використовуйте. FontLoader.open(source, collection_index=N) для вибору певного шрифта з: файл збірки ТТС.

See Also

 Українська