Как работать с шрифтами 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_font — cff_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.