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 или по-нова и не изисква външни OS шрифтови библиотеки или native зависимости.

Библиотеката предоставя чист 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, Type 1
  • Достъп до метаданни на шрифта чрез базовия клас Font: font_name, font_family, font_style, num_glyphs
  • Четене на карти за кодиране на глифове с FontEncoding.unicode_to_gid() и get_all_codepoints()
  • Преглед на метриките на шрифта с FontMetrics: ascent, descent, line gap, em-square

Типични случаи на употреба

  • Процеси за валидиране на шрифтове и извличане на метаданни
  • Проверки на 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 (последствие на проверка) с FontConverter.convert()
  • Приспособяване на видовете крива на Безиер с CurveAdapter.quad_to_cubic() и cubic_to_quads()
  • Преобразуване на пътеки между квадратни и кубични с convert_path_quad_to_cubic() и convert_path_cubic_to_quad()

Типични случаи на употреба

  • Web шрифтни тръбопроводи, които преобразуват 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()

Типични случаи на употреба

  • Страници с образци на шрифтове и интерактивни изследватели за оси за литейнически предприятия по типове
  • Проводи за ИК, които проверяват променливото поведение на шрифтовете преди разпространението им.
  • Уеб-процесори за производителност, които изхвърлят несъществени бинарни таблици.
  • Фонтови миниатюри за предварително изглеждане на приложения за управление на шрифтове

Зареждане на файл от шрифт

Отворете 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

Frequently Asked Questions

Какво е 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, CFF, WOF и WOFC2. 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) предоставят по-фино управление.

  

Ресурси за поддръжка и обучение

 Български