Поднабор шрифта
Что такое подмножество шрифтов
Подмножество шрифта — это процесс извлечения определенных символов из файла шрифта. Однако эти символы могут быть представлены несколькими глифами. Этот момент мы поясним далее.
Как было сказано в статье про glyphs, файл шрифта включает в себя так называемый glyphsets. Их размер сильно различается и может составлять более 5000 символов. С помощью подмножества вы можете создать файл только из нескольких из них.
Зачем вам нужно создавать подмножество?
Давайте опишем ситуации, когда подмножество принесет вам некоторую пользу.
Большие перегруженные файлы шрифтов не только занимают много места, но и неудобны в управлении. Зачем вам полный комплект, если ваш проект ориентирован только на англоязычную аудиторию. В этом случае вам понадобятся только английские буквы и цифры. Таким образом, поднабор шрифтов — хороший инструмент для оптимизации размера файла шрифта.
Другая ситуация: если вы выбрали шрифт, который будет использоваться только для вашего логотипа или названия бренда, было бы разумно иметь легкий небольшой поднабор шрифтов, включающий только буквы логотипа/названия бренда. Предположим, нам нужны только символы для написания логотипа Aspose.Font в Dancing Script заглавными буквами, тогда подмножество будет выглядеть примерно так. Из шрифта размером 500 Кб было взято всего 9 символов.

Таким образом, логотип, созданный в подмножестве Dancing Script, будет выглядеть следующим образом.

Обычные наборы глифов также могут включать буквы более чем 200 языков и множество дополнительных элементов, таких как специальные грамматические символы, буквы с маленькой буквы, различные стили одной и той же буквы или символа. Вы не будете использовать их все, более того, не все эти глифы можно отобразить в сети. Так почему бы не получить файл меньшего размера без бесполезных элементов.
Еще один аспект, о котором стоит упомянуть, заключается в том, что некоторые шрифты не бесплатны, а некоторые могут стоить довольно дорого, особенно дизайнерские. Таким образом, покупка только поднабора шрифтов позволит вам сэкономить деньги и получить уникальный красивый текст для вашего проекта. Конечно, в этом случае вы не создаете подмножество самостоятельно, но все же.
Подмножество веб-шрифта
Веб-шрифты состоят из двух важных частей. Это символы (буквы, цифры, знаки препинания) и элементы открытого типа. Символы размещаются в определенных блоках в зависимости от их функциональности или языка. Каждый из них имеет свой собственный код (Юникод), сопоставленный с шестнадцатеричным числом. Функции открытого типа больше относятся к глифам (вариантам этих символов).
Веб-шрифт — это один из форматов, созданный специально для веб-проектов, страниц, сайтов и т. д. Он предназначен для правильного отображения текста в браузерах и уменьшения веса страницы. Подробнее о шрифтах WOFF и WOFF2 вы можете узнать из статьи, в которой рассказывается о форматах шрифтов.
Некоторые, говоря о веб-шрифтах, также упоминают такой термин, как шрифт HTML. Этот термин относится к наличию одного или нескольких запасных вариантов на случай, если ваш шрифт не удастся отобразить в каком-либо браузере. Веб-шрифт HTML использует веб-шрифт, установленный на устройстве пользователя, в качестве резервного варианта.
Когда речь идет о подмножестве веб-шрифтов, у него могут быть и другие преимущества:
- Использование подмножеств шрифтов позволяет сохранить вес страницы и улучшить взаимодействие с пользователем.
- Как разработчик вы можете избавиться от символов неподдерживаемых языков.
- Из-за небольшого размера файлов вы можете использовать больше разных шрифтов в своем веб-проекте и добавлять больше запасных вариантов.
Как создать подмножество шрифтов с помощью Aspose?
Существует много способов создать подмножество шрифтов. Некоторые из них являются программными способами, а некоторые — просто настольными или онлайн-приложениями.
Кроссплатформенное приложение подмножества шрифтов
Будучи экспертом в управлении шрифтами среди множества различных полезных решений, Aspose.Font также предлагает кроссплатформенное приложение, которое может помочь вам создать подмножество вашего шрифта.
Функционал довольно простой. С его помощью вы можете объединить глифы из нескольких файлов шрифтов в один или просто создать гораздо меньший и более четкий файл. Вы можете выбрать строчные буквы, цифры, знаки препинания или ввести необходимые символы. Он поддерживает форматы TTF, WOFF, EOT, CFF и Type 1.
Давайте представим, что мы хотим, чтобы наш логотип был составлен из букв шрифта Abel Regular. Файл у него не такой уж и большой, всего 35 Кб. и содержит всего 259 глифов, но мы все же хотим сделать его как можно меньшим.

После загрузки шрифта с устройства или держателя можно выбрать нужные символы. Для нашего логотипа нам понадобится всего 9 из них.
При необходимости есть несколько кнопок, которые ускоряют процесс: вы можете выбирать прописные или строчные буквы, цифры, математические символы или знаки препинания одним щелчком мыши.

Через мгновение вы сможете скачать результат. В нашем случае размер сгенерированного файла шрифта составляет 2 КБ. Итак, у нас есть файл в 15 раз меньший. Давайте сравним два документа, используя приложение Viewer.

Как вы могли заметить, количество символов в сгенерированном файле равно 10, а не 9, как нам нужно для нашего логотипа. Ответ на это несоответствие содержится в вышеупомянутом тезисе о том, что один иероглиф может быть представлен несколькими глифами. Судя по всему, одна из букв или символ точки имеет другой вариант внешнего вида.
Итак, очевидно, что с файлом гораздо большего размера вы можете получить гораздо более заметные результаты. Это почему-то кажется таким же полезным, как сжатие контента (текстовых файлов, изображений) архивами, но по сравнению со сжатием качество символов подмножества ни капельки не меняется.
Лицензионные ограничения, связанные с подмножеством шрифтов
Когда дело доходит до разделения шрифтов, очень важно помнить об ограничениях лицензирования, связанных с использованием шрифтов. Условия лицензирования шрифтов могут различаться в зависимости от разработчика шрифта или дизайнера. Давайте рассмотрим общие соображения относительно лицензионных ограничений при разделении шрифтов:
Некоторые лицензии явно запрещают использование поднаборов, тогда как другие могут разрешать это при определенных условиях или ограничениях. Вам следует прочитать и понять условия, изложенные в лицензионном соглашении, чтобы обеспечить их соблюдение.
Некоторые лицензии на шрифты могут ограничивать или запрещать распространение подмножеств шрифтов третьим лицам. Если вы планируете это сделать, убедитесь, что это соответствует условиям лицензии на шрифт.
Некоторые лицензии на шрифты могут иметь ограничения на количество пользователей или устройств, которым разрешено использовать подмножества шрифтов. Поэтому изучите разрешенную область действия, указанную в лицензии.
Некоторые лицензии на шрифты могут иметь особые условия для встраивания шрифтов. Проверьте, позволяет ли лицензия встраивать подмножества шрифтов и есть ли какие-либо ограничения или требования.
Некоторые лицензии на шрифты могут содержать особые положения, касающиеся коммерческого или коммерческого использования. Поэтому убедитесь, что конечные пользователи проинформированы об условиях лицензирования шрифтов через Лицензионное соглашение с конечным пользователем (EULA) или аналогичную документацию.
Лицензии на шрифты могут иметь ограничения на изменение или создание производных работ на основе подмножеств шрифтов. Убедитесь, что лицензия разрешает такие действия, и соблюдайте требования, указанные в лицензионном соглашении.
Создание ИИ-агента для субсеттинга шрифтов
Основная инженерная задача — создать конвейер, в котором ИИ может принимать поток текстового контента в реальном времени или запрос на брендинг, динамически сопоставлять требуемые массивы символов с собственными кодовыми точками Unicode, внедрять защитные резервные символы (такие как .notdef) и компилировать высокосжатый веб-контейнер шрифта с помощью Aspose.Font для .NET.
Пошаговый рабочий процесс реализации агента
Извлечение контента и сбор символов (ядро LLM) Пользователь предоставляет промпт, блок компонентов пользовательского интерфейса или определенный текст брендинга (например, «Создайте оптимизированное подмножество веб-шрифтов для заголовка нашей целевой страницы, использующее строку “ASPOSE.FONT”»). LLM анализирует исходный поток символов, изолирует уникальные символы и преобразует строки в упорядоченный список различных кодовых точек Unicode, удаляя дубликаты.
Пометка критических и резервных (fallback) глифов Чтобы результирующий набор шрифтов не приводил к сбоям в работе современных движков рендеринга или процессоров макетов браузера, системы структурного контроля должны быть явно настроены вместе с пользовательским списком подмножества. Агент инициализирует собственный процесс
Font.Loadдля сопоставления исходного бинарного файла. Он автоматически помечает индикаторы структурного резервного копирования (PreserveDefaultGlyphs = true) для привязки стандартных системных символов, таких как.notdefи.null, обеспечивая структурную стабильность.Фабрика оптимизации и матрица параметров (уровень проверки) Агент строит матрицу профиля оптимизации на основе ограничений среды вывода. ИИ создает программный объект конфигурации
FontSubsetOptions:
- Сопоставляет целевой массив с
PreserveGlyphs. - Удаляет «тяжелые» в байтах микронастройки с помощью
RemoveHinting = trueдля дальнейшего уменьшения размера файла. - Проверяет параметры лицензирования разработчика шрифта в метаданных шрифта для обеспечения соответствия.
- Синтез и кодирование подмножества (узел выполнения)
Оптимизированный профиль передается непосредственно в буфер памяти основного файла для вывода минимизированного кроссплатформенного файла шрифта.
Агент запускает
sourceFont.Subset(subsetOptions), выводя оптимизированный экземпляр шрифта. Он сохраняет файл черезFontSavingFormatsв веб-совместимые форматы (WOFF2, WOFF или TTF) и передает оптимизированный веб-шрифт непосредственно в конвейер развертывания.
В статье здесь описывается одно из многих приложений для управления шрифтами. Чтобы увидеть, что еще мы можем предложить для этой цели, перейдите на Приложения шрифтов, где вы найдете онлайн-конвертеры, просмотрщики, слиятели, различные генераторы и многое другое.