Як працювати з шрифтами 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) для вибору певного шрифта з: файл збірки ТТС.