Как да работим с TTF шрифтове в Python

Как да работим с TTF шрифтове в Python

Това ръководство показва как да заредите TTF шрифтове, проверка TtfFont свойства, четене на таблици, инстанцииране на променливи шрифтове и конвертиране в други формати с помощта на Aspose.Font FOSS за Python. TrueType шрифт (.ttfAspose.Font FOSS ги зарежда като TtfFont инстанции, които дават достъп до таблици, променливи ос на шрифтове, данни за глифи и утилити за конверсия.

Постепенно ръководство

Стъпка 1: Инсталирайте пакета

Инсталирайте пакета Aspose.Cells FOSS от PyPI, като използвате следната команда pip:

pip install "aspose-font>=1.0.0"

Стъпка 2: Импортиране на необходимите класове

Внос на продукти от други държави членки 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). ОТФ шрифтовете обикновено използват очертания на CFF. TTF шрифтовете използват TrueType квадратни криви. И двете са заредени от: FontLoader.open().

Мога ли да получа двойки ядки от TTF шрифт?

Да, използвай. TtfFont.get_kern_pairs() да получите списък на KernPair обекти.

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

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

Вижте също:

 Български