1. Продукти
  2.   Aspose.Font
  3.   Aspose.Font FOSS for Python

Aspose.Font FOSS for Python

Відкрита бібліотека Python для завантаження, аналізу, конвертації та створення підмножин файлів шрифтів TTF, OTF, CFF, WOFF, WOFF2 і EOT.

Працювати з шрифтами програмно в Python

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()
  • Автоматично виявляє формат: TTF, OTF (загальний) CFF, WOFF (виключний), WOff2 (віщовий), EOT (відповідний), тип 1
  • Доступ до метаданих шрифту через базовий клас Font: font_name, font_family , font_style і num_glyphs
  • Читати карти кодування щітків з FontEncoding.unicode_to_gid() і get_all_codepoints()
  • Перевірка метрики шрифту з FontMetrics: підйом, спуск, пробіг лінії, em-квадратний

Типові випадки використання

  • Схеми підтвердження шрифтів та вилучення метаданих
  • Проверки CI/CD, що перевіряють назву сім’ї шрифтів та кількість ігліфов.
  • Услуги веб-застосування шрифтів, які приймають кілька формат введення.
  • Інструменти дизайну шрифтів, які відображають метадані без робочого столу.

Доступ до гліпфов та перевірка шляху

  • Отримувати гліфи за ID або Unicode за допомогою GlyphAccessor.get_glyph_by_id() та get_glyph_by_unicode()
  • Визначати всі гліфи для рядка за допомогою GlyphAccessor.get_glyphs_for_text()
  • Переглядати контурні шляхи гліфів як введені команди: MoveTo, LineTo, QuadraticTo, CurveTo, ClosePath
  • Доступ до обмежувальної рамки гліфа, ширини кроку та бокових відступів через властивості Glyph
  • Читати пари кернінгу з KernPair для точних розрахунків розташування тексту

Типові випадки використання

  • Перевірка охоплення гліфами для багатомовного відтворення тексту
  • Витягнення контур для генерації SVG-патеї або вектора.
  • Перевірка таблиці керні в робочих потоках QA шрифтів
  • Дослідження формування тексту та експерименти з макетуванням на низькому рівні

Конвертування шрифтів

  • Переверніть між TTF, OTF , CFF, WOFF , WOff2, EOT і Типом 1 з FontConverter.convert()
  • Адаптувати типи кривої Безіра з CurveAdapter.quad_to_cubic() і cubic_to_quads()
  • Переверніть шляхи щільних між квадратичними і кубічними з convert_path_quad_to_cubic() та convert_path_cubic_to_quad()

Типові випадки використання

  • Веб-піплейни шрифтів, які перетворюють основні шрифтні знаки TTF на WOFF2 для розповсюдження.
  • Тип литвального інструмента, який експортує на цілі з декількох форматів з одного джерела.
  • Переведення EOT для спільносумісних веб-штоплів шрифтів
  • Автоматизована нормалізація формату шрифту в безперервному інтеграції

Підставка шрифтів

  • Підмножина шрифтів за текстом Unicode з FontSubsetter.subset_by_text()
  • Підмножина по списку ідентифікаторів гліфов з FontSubsetter.subset_by_gids()
  • Виробляти веб-оптимізовані підмножини з FontSubsetter.subset_for_web()
  • Прикласти названі попередньо встановлені профілі з FontSubsetter.subset_by_presets() і available_presets()
  • Аналізуйте покриття підмножини з FontSubsetter.analyze_coverage() і analyze_web_coverage()

Типові випадки використання

  • Зменшення розміру корисної навантаження WOFF2 для веб-сторінки з обмеженими наборами символів.
  • Виробництво субполосів специфічних для мови шрифтів для розгортання i18n
  • Робочі потоки ліцензування шрифтів, які розподіляють підмножини на наборі сторінок.
  • Оптимізація продуктивності для мобільних веб-додатків

Оптимізація веб-сайту та перемінні форматні попередні візити

  • Зніміть таблиці і записи про ім’я Mac з FontCleaner.clean_for_web()
  • Перевірка сумісності змінної осі шрифту з CompatibilityChecker.compare_fonts() і compare_variable_instances()
  • Вирожай анімовані APNG осі стерегли з AnimationPreviewBuilder.build_axis_sweep()
  • Створити багатоступені анімаційні шляхи з AnimationPreviewBuilder.build_path()

Типові випадки використання

  • Страни з прикладом шрифтів та інтерактивні експлоратори осі для ливарних заводів типів
  • Спілки CI, які перевіряють поведінку змінного шрифту перед розповсюдженням.
  • Веб-провідні канали, які не використовують основні двоякі таблиці.
  • Фонтові уявлення для додатків управління шрифтом

Завантажити файл шрифту

Відкрити шрифт TrueType або OpenTyme з шляху файлу і прочитати його основні метадані.

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

Доступ до гліпів для текстового ряду

Вирішати всі гліфи для точок кодного коду Юнікода і перевірити їх контурний шлях.

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

Часті Питання

Що таке Aspose.Font FOSS для Python?

Це безкоштовна, ліцензована MIT бібліотека з чистою Python для завантаження, перегляду, перетворення та підставлення шрифтів у форматах TTF, OTF , CFF, Type 1, WOFF , WOff2 і EOT. Не потрібно наційованих залежностей .

Як встановити Aspose.Font FOSS для Python?

Запустити pip install "aspose-font>=1.0.0". Не потрібно залежність на рівні системи. Бібліотека працює на Windows, macOS та Linux з Python 3.10 або більш пізнішими версіями.

Які формати шрифтів підтримуються?

FontLoader.open() читає TTF, OTF , CFF, тип 1, WOFF , WOff2 і EOT. FontConverter.convert() пише TFT, CFC, WOFF та WOFL2. Eot є тільки для читання.

Font.to_bytes ((() доступний?

Ні. Font.to_bytes() не реалізовано в базовому класі. Використайте FontConverter.convert(), щоб створити новий Font у потрібному форматі.

Чи можна підставити шрифт для доставки в Інтернет?

Так. FontSubsetter.subset_by_text(font, text) повертає новий Font, що містить лише гліфи, необхідні для даного тексту. FontSubsetter.subset(font, codepoints) і subset_by_gids(font, gids) забезпечують більш точний контроль.

  

Ресурси Підтримки та Навчання

 Українська