Aspose.Font FOSS для Python — это чисто-Python набор инструментов для загрузки, инспекции, конвертации, подмножества и предварительного просмотра шрифтов в форматах TrueType, OpenType, CFF, Type 1, WOFF, WOFF2 и EOT. Библиотека работает на Python 3.10 и новее и не требует внешних библиотек шрифтов ОС или нативных зависимостей.
Библиотека предоставляет чистый API для загрузки шрифтов через FontLoader, доступа к глифам через GlyphAccessor, конвертации форматов через FontConverter, веб‑оптимизации через FontCleaner, подмножества с учётом текста через FontSubsetter и анимации переменных шрифтов через AnimationPreviewBuilder. Метаданные шрифта, такие как имя, семейство, стиль, количество глифов, кодировка и метрики, доступны через базовый класс Font без ручного разбора бинарных таблиц.
Aspose.Font FOSS лицензирована по MIT и устанавливается из PyPI одной командой pip install. Она подходит для инструментов дизайна шрифтов, веб‑шрифтовых конвейеров, движков рендеринга глифов и любого Python приложения, которому необходимо читать, преобразовывать или создавать файлы шрифтов. Для корпоративного семейства продуктов см. Aspose.Font — Enterprise Product Family.
FontLoader.open() и FontLoader.load()Font: font_name, font_family , font_style и num_glyphsFontEncoding.unicode_to_gid() и get_all_codepoints()FontMetrics: подъем, спуск, разрыв между линиями, em-квадратныйGlyphAccessor.get_glyph_by_id() и get_glyph_by_unicode()GlyphAccessor.get_glyphs_for_text()MoveTo, LineTo, QuadraticTo, CurveTo, ClosePathGlyphKernPair для точных расчётов размещения текстаFontConverter.convert()CurveAdapter.quad_to_cubic() и cubic_to_quads()convert_path_quad_to_cubic() и convert_path_cubic_to_quad() между квадратными и кубическими.FontSubsetter.subset_by_text()FontSubsetter.subset_by_gids()FontSubsetter.subset_for_web()FontSubsetter.subset_by_presets() и available_presets()FontSubsetter.analyze_coverage() и analyze_web_coverage()FontCleaner.clean_for_web()CompatibilityChecker.compare_fonts() и compare_variable_instances()AnimationPreviewBuilder.build_axis_sweep()AnimationPreviewBuilder.build_path()Откройте шрифт TrueType или OpenTybe с пути файла и прочитайте его основные метаданные.
from aspose_font.loader import FontLoader
font = FontLoader.open("Roboto-Regular.ttf")
print(font.font_name) # e.g. "Roboto"
print(font.font_family) # e.g. "Roboto"
print(font.num_glyphs) # e.g. 1294
Разрешите все глифы для точек кода Unicode и проверьте их контурные пути.
from aspose_font.loader import FontLoader
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(0x41) # Unicode for A
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Создать анимационный APNG, который прокатывает переменную ось шрифта от начального до конечного значения.
from aspose_font.loader import FontLoader
from aspose_font.animation import AnimationPreviewBuilder
font = FontLoader.open("Roboto-VariableFont_wdth,wght.ttf")
asset = AnimationPreviewBuilder.build_axis_sweep(
font,
axis_tag="wdth",
start_val=75.0,
end_val=100.0,
frames=3,
fps=10,
text="A",
size=10.0,
bounce=True,
)
asset.write_to("roboto-sweep-wdth.png")
Стрелять старые таблицы и записи имен Mac для уменьшения размера бинарного файла перед веб-сервированием.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
cleaned = FontCleaner.clean_for_web(font)
# DSIG, FFTM, meta tables removed; Mac platform name records stripped
Это бесплатная библиотека с чистой программой Python, лицензированная MIT для загрузки, проверки и преобразования шрифтов в форматах TTF, OTF , CFF, Type 1, WOFF , WOff2 и EOT. Не требуется никаких зависимостей .
Запустить pip install "aspose-font>=1.0.0". Не требуется никаких зависимостей на уровне системы. Библиотека работает в Windows, macOS и Linux с Python 3.10 или более поздней версией.
FontLoader.open() читает TTF, OTF , CFF, Type 1, WOFF , WOff2 и EOT. FontConverter.convert() пишет TFT, CFCF, WOFF и WOFL2. Eot является только для чтения.
Нет. Font.to_bytes() не реализован в базовом классе. Используйте FontConverter.convert(), чтобы создать новый Font в нужном формате.
Да. FontSubsetter.subset_by_text(font, text) возвращает новый Font, содержащий только глифы, необходимые для данного текста. FontSubsetter.subset(font, codepoints) и subset_by_gids(font, gids) предоставляют более тонкий контроль.