Конвертирование шрифтов из 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
Ключевые параметры утилиты
ttf2bdf:
-p <размер> | - | размер шрифта (нас интересует 72pt); |
-l | - | подмножество символов для извлечения; |
-o <имя файла> | - | имя выходного файла BDF-шрифта; |
<входной файл> | - | имя исходного файла TTF-шрифта (здесь - arial.ttf); |
-r <разрешение> | - | разрешение выходного шрифта (этот параметр сильно влияет на размер выходного файла; по умолчанию – 100dpi). |
В итоге получаем файл
BDF-шрифта – “arial72.bdf”.
Дополнительные примеры перекодирования шрифтов можно найти тут
http://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” и создаем правило для нового шрифта:
1. Arial;
2. 72pt Regular;
3. 72;
4. 72.
Для завершения установки нажимаем “
Install Before”, а затем “
Save”.
5. Проверка PHF-шрифтовЗапускаем
ped, вводим произвольный текст и выделяем его мышью. Далее открываем диалог выбора шрифта, выбираем шрифт “
Arial” и
вручную вводим размер шрифта – 72 (этот размер мы указали при создании правила).
В результате видим:
ttf2bdf для Windowsttf2bdf для Linuxttf2bdf для QNX4