Как работать с новыми шрифтами? Перечислим средства для разработки.
* Fextract Сергея Вакуленко. http://www.vak.ru/pub/palm/fextract13.zip . Инструмент для декомпиляции чужих шрифтов. Единственное замечание - программа забывает добавить в конец получаемого исходного файла отсутствующий глиф.
* Pilrc. Компилятор ресурсов, в том числе шрифтов из текстового формата. Я рекомендую взять откомпилированную бету 3.0, которая поддерживает новые шрифты лучше, чем существующая стабильная версия 2.9. http://yahm.palmoid.com/pilrc.zip
* Par. http://www.djw.org/product/palm/par/ . Замечательный инструмент для работы с пальмовыми базами на десктопе.
* Любой стандартный редактор старых шрифтов.
* PalmFontConv от Александр Р. Прусс aka arpruss. http://palmfontconv.sourceforge.net/ . Хороший конвертор из любого вида пальмовых шрифтов в любые. Программа подсказана Василием Парфеновым.
Перечислим операции, которые мы можем произвести с помощью перечисленных средств:
* Создать старый бинарный шрифт можно редактором шрифтов
* Из старого бинарного шрифта можно получить текстовый с помощью fextract
* Откомпилировать несколько текстовых шрифтов в новый шрифт можно с помощью pilrc
* Создать из нового шрифта базу можно с помощью pilrc
* Заменить шрифт в существующей программе можно с помощью par.
Новые шрифты собираются из двух старых. Один старый шрифт должен быть строго в два раза раза больше другого по всем измерения. Это правило должно соблюдаться для всех глифов.
Пример:
шрифт 11x11 и 22x22
буква "я" из одинарного набора. ее размеры 4x11
----
----
----
----
-##-
#-#-
-##-
#-#-
#-#-
----
----
буква "я" из двойного набора. ее размеры 8x22
--------
--------
--------
--------
--------
--------
--------
--------
--------
---####-
--#---#-
-#----#-
-#----#-
--#---#-
---####-
---#--#-
--#---#-
-#----#-
--------
--------
--------
--------
Если двойная буква получается уже или ниже, то необходимо добить глиф пустыми строками и колонками.
Шрифты после создания следует перевести в текстовый вид. Также нужно создать файл описания ресурсов следующего вида
// font.rc file
FONTFAMILY ID 0x232e
BEGIN
FONT "a-6x6.pfn" DENSITY 72
FONT "a-22x22.pfn" DENSITY 144
END
FONTFAMILY ID 0x2330
BEGIN
FONT "a-7x7.pfn" DENSITY 72
FONT "a-14x14.pfn" DENSITY 144
END
Запуском pilrc font.rc
мы получим откомпилированный новый шрифт. Для получения little endian шрифтов используйте опцию -LE32: pilrc -LE32 font.rc
.
Отзывы о PalmFontConv от wasly:
Передо мной стояла обратная задача:
Перевести шрифт для PalmOS5(afnx) в шрифт для PalmOS4(nfnt).
Обладая на тот момент абсолютно нулевыми знаниями об шрифтах для PalmOS5, тем не менее
выполнил эту задачу в течении 10-20 минут с помощью программы PalmFontConv
(http://palmfontconv.sourceforge.net/). Правда сей продукт тоже при конвертировании
в txt-формат “забывает“ извлекать дефолтовый фонт.
Советую глянуть - программа умеет многое приментельно к шрифтам под PalmOS5.
Плюс проект OpenSource, так что всегда можно подкорректировать код или подглядеть
что-то о формате шрифта.
Есть версия под Win32-консоль, работающая через cygwin(http://www.cygwin.com).
Но перекомпилить под винду его не составит особого труда. ;)
P.S. PilFont тоже “забывал“ извлекать дефолтовый фонт из шрифта - ничего,
я его научил. PilRC пользую версии 2.9p10 - в этой версии почему-то
_снова_ “пропала“ строка вставляющая FFFF в конце шрифта - тоже научили.
Вот в чем прелесть OpenSource - это ж надо понимать :)