Конвертирование шрифтов из TTF в PHF формат
При разработке приложений в QNX4 может возникнуть необходимость использования дополнительных, отсутствующих в ОСРВ, шрифтов. Проще всего это решается добавлением в систему шрифтов в формате TTF. Осуществляется это достаточно просто: утилитой fontcfg -G.
Однако, если Вам понадобится использовать утилиты удаленного взаимодействия с Photon (Phindows и phrelay), Вы обнаружите, что весь текст в приложении отсутствует.
Решение данной проблемы освещено ниже.
Для преодоления обозначенного ограничения необходимо выполнить конвертирование True Type шрифтов (формат TTF разработан фирмой Apple, Inc в конце 1980-х) в стандартный для Photon формат (Photon Font - PHF). Однако, непосредственно переконвертировать TTF шрифты в формат PHF нельзя. Для этого необходимо выполнить последовательность преобразований форматов: TTF -> BDF -> PHF. Формат BDF (Adobe Glyph Bitmap Distribution Format) разработан Adobe Software и представляет собой текстовый файл, содержащий битовые маски символов (глифов), представленных в шрифте.
Порядок создания и установки PHF-шрифтов
- Конвертирование TTF-шрифтов в формат BDF
- Создание семейства PHF-шрифтов из BDF-шрифта
- Установка семейства PHF-шрифтов
- Создание правил для PHF-шрифтов
- Проверка PHF-шрифтов
1. Конвертирование TTF-шрифтов в формат BDF
Для конвертирования TTF-шрифтов в формат BDF используется утилита ttf2bdf. Версии утилит для ОС Linux и Windows можно найти на форуме.
Для получения BDF-шрифта размера 72pt вводим следующую команду:
# ./ttf2bdf -p 72 -l '32_255 1024_1279' -o arial72.bdf arial.ttf
В итоге получаем файл BDF-шрифта – “arial72.bdf”.
Ключевые параметры утилиты ttf2bdf: -p <размер> - размер шрифта (нас интересует 72pt); -l - подмножество символов для извлечения; -o <имя файла> - имя выходного файла BDF-шрифта; <входной файл> - имя исходного файла TTF-шрифта (здесь: arial.ttf); -r <разрешение> - разрешение выходного шрифта (этот параметр сильно влияет на размер выходного файла; по умолчанию – 100dpi).
Дополнительные примеры перекодирования шрифтов можно найти на qnx4.narod.ru.
2. Создание семейства PHF-шрифтов из BDF-шрифта
Создание семейства PHF-шрифтов из BDF-шрифта производится при помощи стандартной утилиты bdf_2_phf, формат ее вызова приведен ниже.
# bdf_2_phf -S <код> -N <макс.число> -O <вых. файл> <вх. файл>
Утилита создает PHF-шрифт с выбранным из BDF-шрифта диапазоном символов.
Параметры утилиты: -S <код> - код первого символа, с которого начинается диапазон; -N <макс.число> - максимальное число символов, составляющих диапазон выбранных символов; -O <вых. файл> - имя выходного файла PHF-шрифта; <вх. файл> - имя входного файла BDF-шрифта;
Проанализировав или исходный TTF-шрифт или имеющийся BDF-шрифт можно подобрать диапазоны символов, которые необходимо извлечь при создании семейства PHF-шрифтов:
# bdf_2_phf -S0x20 -N0x60 -Oarial00-72.phf arial72.bdf # bdf_2_phf -S0xA0 -N0x64 -Oarial01-72.phf arial72.bdf # bdf_2_phf -S0x0401 -N0x60 -Oarial02-72.phf arial72.bdf # bdf_2_phf -S0x045E -N0x20 -Oarial03-72.phf arial72.bdf
Разбиение на диапазоны обусловлены необходимостью ограничения размера файлов PHF-шрифтов 64Кб.
3. Установка семейства PHF-шрифтов
Копируем полученное семейство шрифтов в директорию “/qnx4/photon/font/” и запускаемконфигуратор шрифтов командой fontcfg -G.
В списке не установленных шрифтов (Uninstalled Fonts) появляется шрифт “Arial 72pt Regular”. Выбираем этот шрифт и нажимаем кнопку “Install”.

Для завершения установки, после создания правил (описано в следующем разделе), нажимаем кнопку “Save”.
4. Создание правил для PHF-шрифтов
Открываем вкладку конфигуратора шрифтов “Extensions” и создаем правило для нового шрифта:
- Arial;
- 72pt Regular;
- 72;
- 72.
Процесс создания правила для нового шрифта представлен на изображении:

Для завершения установки нажимаем “Install Before”, а затем “Save”.
5. Проверка PHF-шрифтов
Запускаем ped, вводим произвольный текст и выделяем его мышью. Далее открываем диалог выбора шрифта, выбираем шрифт “Arial” и вручную вводим размер шрифта – 72 (этот размер мы указали при создании правила).

В результате видим:

Заключение
Созданные PHF-шрифты будут отображаться и в Phindows и в phrelay. Изменение пользовательских приложений таким образом не потребовалось.
Автор: Андрей Докучаев
Метки:
QNX4
|
Photon
|
Руководство






