Introduction
Aspose.Font FOSS for Python provides a coherent set of classes for every common Задача управления шрифтом: загрузка файлов шрифта в нескольких форматах, чтение метаданных и обработки данных с помощью гиф, конвертации между форматами, поднастройке для доставки в Интернете и очистке; Этот справочник проходит через каждый основной возможности с рабочими примерами кода, полученными из проверенного API библиотеки.
Пакет (aspose-font) лицензирован MIT, требует Python 3.10+, и не имеет никаких ограничений. Осуществлять установку с помощью OS-уровня зависимостей библиотеки шрифтов. pip install aspose-font>=1.0.0.
Основные особенности
Загрузка шрифтов с помощью FontLoader
FontLoader является единственной точкой входа для всех операций загрузки шрифтов. open() метод принимает путь файла (str или Path) и автоматически обнаруживает формат. load() Метод принимает необработанные байты для в-памяти потоков работы. Оба возвращают a Font-напечатанный объект, который вы можете осмотреть немедленно.
from aspose_font.loader import FontLoader
# Load from file path — format detected automatically
font = FontLoader.open("Roboto-Regular.ttf")
# Load from raw bytes (e.g., from a network request or database blob)
with open("OpenSans-Regular.otf", "rb") as f:
font_bytes = f.read()
font = FontLoader.load(font_bytes)
Чтение метаданных шрифтов через базовый класс шрифта
После загрузки, Font базовый класс выставляет стандартные свойства метаданных без: требуя от вас анализировать бинарные таблицы шрифтов. свойства font_name, font_family, font_style, и num_glyphs покрывать наиболее распространенные потребности в метаданных.
font = FontLoader.open(“NotoSans-Regular.ttf”) print(f"Name: {font.font_name}") print(f"Family: {font.font_family}") print(f"Style: {font.font_style}") print(f"Glyphs: {font.num_glyphs}")
### Кодирование и доступ к ссылкам на глифы
`FontEncoding` Карты указывают на идентификаторы с помощью символов. `unicode_to_gid()` для: единые кодовые точки или `get_all_codepoints()` перечислить полный охват Фонт. `GlyphAccessor` затем получает объекты с помощью идентификатора через `get_glyph_by_id()`, по Unicode через `get_glyph_by_unicode()`, или для текстовой строки через `get_glyphs_for_text()`.
font = FontLoader.open("OpenSans-Regular.otf")
# Map Unicode code point to glyph ID
glyph_id = font.encoding.unicode_to_gid(0x41) # 'A'
print(f"Glyph ID for 'A': {glyph_id}")
# Retrieve glyph object
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
# Inspect path commands
for cmd in glyph.path.commands:
print(type(cmd).__name__, cmd)
Перевод шрифтов с помощью FontConverter
FontConverter.convert() конвертирует загруженный шрифт между поддерживаемыми форматами. Пропустите источник шрифта и идентификатор формата целевого для получения нового объекта шрифтов в цели Формат: Метод обрабатывает CFF, TTF, WOFF , WOff2, EOT и Type 1 как источник, так и тип. Цель.
from aspose_font.loader import FontLoader
from aspose_font.converter import FontConverter
source = FontLoader.open("MyFont.ttf")
converted = FontConverter.convert(source, target_format="woff2")
Веб-оптимизация с помощью FontCleaner
FontCleaner.clean_for_web() устраняет бинарные таблицы, которые не нужны для веб-сайта. доставка шрифтов в частности DSIG, FFTM и meta ?? и полоски для платформы Mac (platform_id=1) Результат является более строгой бинарный, что уменьшает сеть полезной нагрузки без затрагивания контуров или метрик. сохранить конкретные типы таблиц, если это необходимо.
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
font = FontLoader.open("Roboto-Regular.ttf")
# Strip all legacy tables and Mac name records (default)
cleaned = FontCleaner.clean_for_web(font)
# Preserve specific metadata tables if required
cleaned_selective = FontCleaner.clean_for_web(
font,
drop_metadata_tables=False,
drop_legacy_tables=True,
drop_mac_names=True,
)
Инспекция траектории с помощью гликофанов
Every Glyph объект выставляет свой контур как GlyphPath чьи commands последовательность содержит зашифрованные экземпляры MoveTo, LineTo, QuadraticTo, CurveTo, и ClosePath.Каждая команда содержит соответствующие атрибуты координат например, CurveTo имеет: x1, y1, x2, y2, x, y позволяющие добывать сырой безиер. данные для рендеринга, генерации SVG или геометрии столкновения.
from aspose_font.loader import FontLoader
from aspose_font import CurveTo, LineTo
font = FontLoader.open("OpenSans-Regular.otf")
glyph_id = font.encoding.unicode_to_gid(ord("A"))
glyph = font.glyph_accessor.get_glyph_by_id(glyph_id)
curves = [cmd for cmd in glyph.path.commands if isinstance(cmd, CurveTo)]
print(f"Cubic Bezier segments in 'A': {len(curves)}")
Быстрый старт .
pip install aspose-font>=1.0.0
from aspose_font.loader import FontLoader
from aspose_font.cleaner import FontCleaner
# Load, inspect, and clean a font in five lines
font = FontLoader.open("MyFont.ttf")
print(font.font_family, font.num_glyphs, "glyphs")
cleaned = FontCleaner.clean_for_web(font)
print("Font cleaned for web delivery")
Поддерживаемые форматы
| Format | Extension | Read | Write |
|---|---|---|---|
| TTF | .ttf (англ.) | ✓ | ✓ |
| OTF | .отф | ✓ | ✓ |
| CFF | .cff (включая перевод) | ✓ | ✓ |
| TYPE1 | .pfb / .pfa | ✓ | ✓ |
| WOFF | .- Да , я знаю . | ✓ | ✓ |
| WOFF2 | .woff2 (полное название) | ✓ | ✓ |
| EOT | .- Ничего. | ✓ | ✓ |
Открытый исходный код и лицензирование
Aspose.Font FOSS for Python is MIT licensed. The source is on GitHub at aspose-font-foss/Aspose.Font-FOSS-для Python (полное название) и упаковка на PyPI как aspose-font.