Как работать с шрифтами 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 для доступных тегов.

Часто задаваемые вопросы

В чем разница между TTF и OTF?

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

Могу ли я получить пары зерна из шрифта TTF?

Да, используйте. TtfFont.get_kern_pairs() чтобы получить список KernPair предметы.

Поддерживает ли библиотека коллекции шрифтов (.ttc)?

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

See Also

 Русский