Как работать с шрифтами 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) выбирать конкретный шрифт из: файл сбора ТТС.