Как работать с шрифтами CFF в Python

Как работать с шрифтами CFF в Python

CFF (Compact Font Format) - формат контура, используемый в шрифтах OpenType и автономных. .cff файлы. Aspose.Font FOSS представляет шрифты CFF как CffFont В частности, в случаях, которые распространяются на: основания. Font класс и выставлять данные, специфичные для CFF.

Крок за шагом руководство

Шаг 1: Установка упаковки

pip install "aspose-font>=1.0.0"

Шаг 2: Импорт необходимых классов

from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont
from aspose_font import FontType

Шаг 3: Загрузить шрифт CFF

Call FontLoader.open() с пути к вашему .cff Возвращенный объект является файлом. CffFont пример, показывающий количество символов, название шрифта и свойства CFF:

font = FontLoader.open("MyFont.cff")
print(font.font_name)
print(font.num_glyphs)

Шаг 4: Доступ к парам ядра

Загруженный шрифт переместить на: CffFont, тогда позвони . get_kern_pairs() не все шрифты CFF содержат данные о ядре; проверьте длину перед итерацией:

from aspose_font.loader import FontLoader
from aspose_font.cff.font import CffFont

cff_font: CffFont = FontLoader.open("MyFont.cff")
kern_pairs = cff_font.get_kern_pairs()
print(f"kern pairs: {len(kern_pairs)}")

Шаг 5: преобразовать CFF в TTF.

Передайте заряженный . CffFont в) к FontConverter.convert() с . FontType.TTF создать новый TtfFont в формате контуры ТТФ:

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

font = FontLoader.open("MyFont.cff")
ttf = FontConverter.convert(font, FontType.TTF)

Общие проблемы и фиксированные

CffFont has no attribute cff_fontcff_font является собственностью на TtfFont что … возвращает встроенные данные CFF, не на базе. Font Для использования отдельных файлов CFF CffFont прямо.

Пустые пары зерна. Не все шрифты CFF содержат данные о паре ядра. Проверьте с len(cff_font.get_kern_pairs()) > 0 перед повторением.

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

В чем разница между CffFont и TtfFon?

CffFont представляет собой отдельные файлы CFF. TtfFont представляет собой файлы TTF/OTF; OTF. может включать в себя схему СФС, доступную через: ttf_font.cff_font.

Могу ли я преобразовать шрифт CFF в WOFF2?

  • Да, я знаю. FontConverter.convert(font, FontType.WOFF2) работает с любым Font примерно в том числе: CffFont.

See Also

 Русский