phfont

Сервер шрифтов Photon

Синтаксис:

phfont [-A] [-b файл] [-C[-]SANSERIF|SERIF|DECORATIVE=описание[;описание2[;...]]] [-D каталог] [-d каталог] [-E правило] [-F типы] [-e файл] [-I] [-i файл] [-K[-]FONDRY|AFTERFOUNDRYKEYS|KEYS=ключ[;ключ2[;...]]] [-L] [-l список] [-mPHF|PFR|TTF=новое_имя[=реальное_имя][;новое_имя2=[реальное_имя2][;...]]] [-N число] [-O[-]ключевое_слово[;[-]ключевое_слово2[;...]]] [-n имя] [-s каталог] [-U семейство] [-u файл] [-X] [-Z выравнивание]

Опции:

-A
Принудительно применить ко всем текстовым растрам функцию сглаживания, если это возможно. Сглаживание можно применить только к масштабируемым шрифтам.
-b файл
При выходе из утилиты phfont сохранить информацию об использовании шрифта в указанном файле.
-C [-]SANSERIF|SERIF|DECORATIVE=описание[;описание2[;...]]
Управление списком классификации шрифтов. Списки классификации шрифтов используются для передачи корректной информации в приложение пользователя, если в шрифте отсутствует информация о его классификации (например, в случае шрифтов PHF).

Эта опция используется для добавления описания к классу шрифтов или удаления этого описания. Для удаления описания перед именем класса шрифтов следует ввести символ -. Эту опцию можно указать в командной строке несколько раз.
-D каталог
Указать каталог конфигурации, в котором хранятся файлы fontdir, fontext, fontmap и fontopts. Значение по умолчанию – /usr/photon/font_repository.
-d каталог
Указать каталог шрифтов. Предполагается, что в этом каталоге находятся все конфигурационные файлы и файлы шрифтов. Значение по умолчанию – /usr/photon/font_repository.
-E правило
Указать используемое правило расширения/отсутствующих символов. Файл fontext может содержать несколько разных правил расширения (например, языковые правила для поиска наборов символов для китайского, японского или корейского языков), причем активным может быть только одно из этих правил. По умолчанию используется первое правило "+" в файле fontext.
-e файл
Указать файл расширения/отсутствующих символов шрифта. Этот файл содержит правила, расширяющие базовый набор выходных символов путем добавления файлов нескольких шрифтов (например, путем добавления специальных символов языков, отличных от английского). По умолчанию используется файл fontext.
-F типы
Вывести значения по умолчанию для указанного атрибута типы и завершить работу утилиты, при этом типы – это строка, содержащая один или несколько из следующих символов:
-I
Использовать строгие международные правила подстановки.
-i файл
Указать индексный файл шрифта. Этот файл содержит информацию заголовков всех известных/используемых шрифтов в системе и позволяет серверу шрифтов быстро выполнять подстановки шрифтов и отсутствующих символов без обращения к диску. По умолчанию используется файл fontdir.
-K [-]FONDRY|AFTERFOUNDRYKEYS|KEYS=ключ[;ключ2[;...]]
Ключи шрифтов удаляются из описания шрифта из определенного местоположения внутри описания. Если используется символ -, указанные ключи удаляются из указанного местоположения ключа. Эту опцию можно указать несколько раз.
-L
Запретить загрузку локальных метрик.
-l список
Указать список шрифтов для предварительной загрузки в кэш и блокировки в нем. Эту опцию можно использовать для обеспечения быстрого доступа к часто используемым шрифтам. Формат списка: разделенный запятыми список имен шрифтов. Пример:
helv10,phcursor,cour10b,swissi

По умолчанию – отсутствует.
-M
Отключить отображение символов вместо отсутствующих символов. По умолчанию, при отображении символа, для которого не удается найти определение, сервер шрифтов отображает пустой прямоугольник.
-m PHF|PFR|TTF=новое_имя[=реальное_имя][;новое_имя2=[реальное_имя2][;...]]
Только для внутреннего использования. Записи в этом файле перезаписывают описательные имена (например, Helvetica) для определенной группы шрифтов (helv). Эта опция добавляет к указанному списку типов шрифтов новую подстановку. Если реальное_имя не указано, это новое_имя удаляется из указанного списка типов шрифтов. Эту опцию можно указать в командной строке несколько раз.
-N число
Указать для менеджера шрифтов число попыток подключения устройства перед завершением работы. Значение по умолчанию – 15.
-n имя
Указать имя, с которым следует зарегистрировать сервер шрифтов. По умолчанию используется значение переменной среды PHFONT. Если оно не установлено, используется префикс /dev/phfont.
-O [-]ключевое_слово[;[-]ключевое_слово2[;...]]
Управление ключевыми словами из азиатских языков. Ключевые слова используются для определения присвоенных разработчиками имен азиатских (восточных) шрифтов и для оптимизации системы расширений. Если ключевое слово начинается с символа -, оно удаляется из списка. В противном случае оно добавляется к списку. Эту опцию можно указать в командной строке несколько раз.
-s каталог
Каталог, содержащий библиотеки отображения шрифтов. По умолчанию это каталог /lib/dll/font.
-U семейство
Указать семейство шрифтов, которое следует использовать для неизвестных шрифтов. Если имя шрифта не существует или же его невозможно получить с использованием явных записей подстановок, используется это семейство шрифтов по умолчанию. По умолчанию используется запись ? в файле fontmap.
-u файл
Указать файл таблицы подстановок неизвестного шрифта. Этот файл создает шрифты-синонимы (или виртуальные шрифты) и правила конфигурации для дополнения растровых шрифтов масштабируемыми шрифтами. Файл по умолчанию – fontmap.
-X
Запретить завершение работы сервера шрифтов после отключения последнего клиента. По умолчанию сервер шрифтов завершает работу после завершения работы всех клиентов.
-Z выравнивание
Установить для растрового выравнивания значение 8, 32 или 64 бит. Эта опция используется только в режиме DLL. См. PfSetOptionsDll().

Note: Если внешний сервер шрифтов не запущен, можно передавать опции с помощью опции -F менеджера io-graphics. Формат немного отличается и основывается на формате getsubopt(). Пример:
io-graphics -F"-d=/usr/photon/font_repository,-A,-N=10" ...

Для получения дополнительной информации см. PfSetOptionsDll().

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита phfont предоставляет возможности обработки шрифтов для всех приложений и драйверов Photon, в т.ч. вычисление текстовых элементов и метрик, а также создание растровых изображений, представляющих символьные строки. Она также поддерживает центральный кэш метрик шрифта и растровых данных. Конфигурационные файлы, используемые утилитой phfont, описаны в разделе Файлы далее.

При инициализации утилиты phfont выполняется предварительная обработка командной строки и определение каталога конфигурации для использования. Затем утилита пытается загрузить файл $HOME/.ph/font/fontopts. Если этот файл не существует, утилита пытается загрузить файл config_dir/fontopts. Она пытается загрузить [io-font] раздел, а затем раздел [io-font-server]. Опции из загруженных разделов комбинируются с опциями, указанными в командной строке. После этого опции обрабатываются, при этом в случае конфликта приоритет имеют опции в командной строке. Опции в разделе [io-font] в файле fontopts используются всеми приложениями, загружающими phfont.so. При использовании PfAttachLocalDll для попытки загрузить раздел [io-font-имя_опции] из файла fontopts также используется имя опции.


Note: Для этой утилиты в полномочиях пользователя необходимо установить бит setuid ("set user ID" (установить идентификатор пользователя)). В случае использования утилит mkefs, mketfs или mkifs на хосте Windows для добавления этой утилиты в образ необходимо задать атрибут perms для явного определения полномочий, а также атрибуты uid и gid для корректной настройки принадлежности.

Утилита phfont загружает DLL-библиотеку phfont.so для обеспечения отрисовки шрифтов. phfont.so загружает DLL-библиотеки, расположенные в каталоге /lib/dll/font, которые предоставляют возможности отрисовки шрифтов определенных типов (например, PHF, TTF, TTC, PFR, Stroke и т.д.).

Если рендеринг какого-либо типа не требуется, соответствующую DLL-библиотеку можно удалить. Для определения возможностей, обеспечиваемых определенной DLL-библиотекой, используется команда use имя_dll, по которой выводится информация об использовании этой DLL-библиотеки. Если внешний сервер шрифтов не запущен, io-graphics пытается вызвать экземпляр сервера шрифтов.

Сервер phfont можно запустить как автономный процесс (называемый внешним сервером) или как подключаемый модуль к io-graphics (называемый внутренним сервером). В следующих условиях рекомендуется запустить внешний сервер:

Для запуска внешнего сервера шрифтов запуск phfont выполняется до io-graphics. Для запуска внутреннего сервера шрифтов просто выполняется запуск io-graphics.

Примеры:

Запуск сервера:

phfont -d /usr/photon/font_repository &


Note: Обычно сервер шрифтов запускается из сценария ph.

Файлы:

DLL-библотеки для рендеринга (отрисовки), используемые сервером шрифтов, расположены в каталоге /lib/dll/font/*.so. Эти файлы поддерживают отрисовку, по крайней мере, для следующих типов шрифтов:

Для просмотра типов шрифтов, поддерживаемых DLL-библиотекой, используется команда use.

Утилита phfont также использует следующие файлы:

fontdir – каталог известных шрифтов
fontext – правила расширения для обработки отсутствующих символов
fontmap – правила подстановки шрифтов
fontopts – опции командной строки

Следующие файлы использовались предыдущими версиями утилиты phfont, но теперь их использование не рекомендуется:

fontdir – каталог известных шрифтов

Каталог известных шрифтов: обязателен. Каждая запись в этом файле содержит такие данные, как имя и тип шрифта, его размер и стиль, текстовое описание семейства шрифтов и диапазон символов, определенных внутри шрифта. Этот конфигурационный файл доступен для приложения, только если в нем определен по меньшей мере один шрифт. Записи в этом файле статичны, их невозможно загрузить динамически.

В каждой строке в этом файле для каждого известного шрифта содержатся следующие разделенные запятыми поля, в указанном порядке:

fontext – правила расширения для обработки отсутствующих символов

Набор правил расширения для обработки отсутствующих символов: обязателен. Формат этого файла:

+тип = имя_шрифта [,имя_шрифта...]

Здесь тип – это тип шрифта (normal, bold и т.д.), а имя_шрифта – это имя шрифта, в котором следует выполнить поиск символов.

fontmap – правила подстановки шрифтов

Набор правил подстановки: обязателен. Существуют два типа:

Синонимичные записи
в следующем виде:
новый_шрифт = фактический_шрифт

В этом правиле подстановки новый_шрифт не существует, а фактический_шрифт существует. При попытке использования в качестве имени шрифта новый_шрифт, он подставляется в фактический_шрифт.

Следующая запись для особых случаев является подстановкой по умолчанию для всех неизвестных имен шрифтов:
? = фактический_шрифт

Например, если geneva = helv, шрифт geneva12 преобразуется в шрифт helv12.
Масштабирующие записи
в следующем виде:
шрифт = {когда}масштабируемый_шрифт

В этом правиле подстановки должны обязательно существовать как шрифт, так и масштабируемый_шрифт. Если точный PHF-файл для шрифта не существует, то создается масштабированная версия масштабируемого_шрифта в соответствии с используемым символом когда:
*
Всегда масштабировать, если для шрифта отсутствует точный PHF-файл.
+
Масштабировать только при превышении максимального размера PHF, определенного для шрифта.
-
Масштабировать только если размер меньше минимального размера PHF, определенного для шрифта.
#
Масштабировать, только если размер выходит за пределы диапазона размеров для PHF-файлов для шрифта


Например, если имеются файлы helv08.phf, helv10.phf и helv12.phf, а swiss – это масштабируемый шрифт, выполняется следующее преобразование:
Правило Входной шрифт Преобразованный шрифт
helv = *swiss helv06 swiss06
helv11 swiss11
helv23 swiss23
helv = -swiss helv06 swiss06
helv11 helv10
helv23 helv12
helv = +swiss helv06 Поле отсутствующего символа
helv11 helv10
helv23 swiss23
helv = #swiss helv06 swiss06
helv11 helv10
helv23 swiss23
Во всех случаях шрифты helv08, helv10 и helv12 (известные доступные шрифты) используются напрямую.

fontopts – опции командной строки

Содержит опции командной строки, по одной опции на строку: необязателен. Опции расположены в разделе для соответствующей схемы. Например, опции, относящиеся к утилите phfont, расположены в разделе [io-font]. Опции, относящиеся к определенной DLL-библиотеке визуализации, делятся на подразделы: булевы, численные, строковые. Они имеют следующий формат:

[dll id-subsection-schema]

Сервер шрифтов может работать в одном из двух режимов: режим сервера или режим клиентской DLL-библиотеки. Для различения опций между двумя этими режимами по умолчанию имеется схема "dll". Если сервер шрифтов запущен в режиме сервера, он выполняет поиск опций в разделе [dll id-subsection], но если сервер шрифтов запущен в режиме клиентской DLL-библиотеки, он выполняет поиск опций в разделе [dll id-subsection-dll]. Если опции не указаны, используются значения по умолчанию.

Переменные окружения:

PHFONT
Имя по умолчанию, с которым следует регистрировать сервер шрифтов.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино»

Тематические ссылки:

bdftophf2, mkfontdir




Предыдущий раздел: Сервисы