[Home] [English] [Russian]
[Введение] [Описание интерфейса] [Структура шрифта] [Уголок разработчика] [Интернет ссылки]


Введение.

  Программа Handy Pilot Font Editor (FE) это инструмент для разработки экранных шрифтов для корманного компьютера работающего под управлением Palm OS(tm).
  Программа FE позволяет вам разработывать как новые шрифты так и модифицировать системные. Вы сможете использовать системные шрифты в качестве основы для своих.   Все созданные шрифты могут быть перенесены на и с персонального компьютера путем HotSync(tm) синхронизации.
  Созданные шрифты вы можете использовать в собственных разрабатываемых приложениях.

  FE работает на всех устройствах с PALM OS: 3COM, IBM WorkPad (tm) и Visor (tm) карманных компьютерах.
Последняя версия FE редактора 1.9R. включает в себя следующие функции:

  • FE это едиственный редактор шрифтов который работает на Palm(tm) компьютерах.
  • База данных шрифтов сделана в редакторе FE совместимая со всеми программами FontHack и другими PalmOS(tm) инструментами.
  • Продуманный интерфейс для операций с изображением шрифта.
  • Возможность загрузить PalmOS(tm) системные шрифты прямо в память редактора.
  • Вся полнота функции для редактирования. Вы можете записать, переименовать, удалить базу данных шрифта невыходя из редактора.
  • Просмотр шрифта и символа везде где это необходимо.
  • Звуковые шелчки при рисовании изображеня.
  • Маскимальная ширина и высота символа 25 точек.
  • Редактор использует системный буфер. Это означает что вы можете импортировать и экспортировать изображения из/в другие апликации.
  • Изображение координат касания стилуса.
  • Окно тестирования шрифта. Теперь вы можете протестировать свой шрифт на лету.

  Созданные шрифты могут быть встроены в любую программу которую вы разрабатываете, а для существующих программ вы можете использовать следующие
HackMaster расширения: FontHack123 (by Sergey Menshikov) и FontHackPlus (by Rick Bram).
  За дополнительными инструментами для работы со шрифтами обращайтесь на страницу Интернет линков.

  Взгляните на демонстрационную версию Handy Pilot Font Editor. Демонстрационная версия содержит в себе все для разработки шрифта за исключением функции записи.   Вы можете записать ваш шрифт только в полной версии редактора. Полная версия стоит $22.95 $25.95.   Кнопки внизу позволят вам загрузить демонстрационную версию и сделать покупку полной версии удобным для вас способом.

Для приобретения программы за рубли с 20% скидкой напишите письмо по адресу info@symbioforge.com.
Пожалуйста незабудьте указать свое ФИО, и адрес в латинской транскрипции.

Примечание: Перед инсталяцией FE рекомендуется установить последние обновления для Palm OS™:
Для Palm моделей вы можете получить с www.palm.com/support.
Для Handspring моделей вы можете получить с www.handspring.com/support/product_support.jhtml.


Описание интерфейса программы.

  1. Первоначальный запуск редактора шрифтов.
  2. Окно параметров заголовка шрифта.
  3. Окно загрузки шрифта.
  4. Основной экран редактора.
  5. Окно для тестирования шрифта.
  6. Панель инструментов.
  7. Окно выбора символов.
  8. Окно для записи и удаления шрифта.
  9. Информация о Шрифте.
  10. Описание команд меню.

1. Первый запуск редактора шрифтов.

  При самом первом запуске программы, после ее инсталяции, вы увидите окно предлагающее вам либо загрузить существующий шрифт либо создать новый. (См. Рисунок N: 1).
  Если вы решили создать новый шрифт нажмите на кнопку `Create New'. Перед вами появится окно редактирования значений заголовка шрифта (Cm. Рисунок N: 2).
  Если вы желаете загрузить существующий шрифт из памяти Palm устройства нажмите на кнопку `Load Font!'. После ее нажатия появится окно загрузки шрифта (См. Рисунок N: 3).
Figure N:1 Первый запуск программы

2. Окно параметров заголовка шрифта.

  В окне редактирования заголовка шрифта вам следует внести несколько основных параметров: десятичный ASCII код первого и последнего символа, значение подъема и снижения, а так же межстрочное расстояние.
Figure N:2 Окно редактирования параметров заголовка шрифта.

Это окно состоит из семи полей:   При нажатии кнопки `OK' введенные параметры вступят в силу и программа перейдет в основное окно редактора, где вы сможете создавать изображения новых символов.
  Кнопка `CANCEL' отменяет введенные параметры.
К настройкам заголовка шрифта вы всегда можете вернуться через меню EDIT->HEADER.

ПРИМЕЧАНИЕ: Для более полного ознакомления с внутренним устройством шрифта и значениями заголовка, обратитесь к странице
структура шрифта.

3. Окно загрузки шрифта.

  В окне `GET FONT' вы можете загрузить любой существующий в памяти Palm компьютера шрифт.
  Нажмите на имя шрифта для того чтоб увидеть начертание символов в окне предварительного просмотра.
  Для загрузки выбранного шрифта в память редактора, следует нажать кнопку `Load'. После загрузки шрифта программа переключится в окно для редактирования. Чтоб вернуться в основное окно редактора без загрузки шрифта нажмите кнопку `Exit'.

Рисунок N:3 Окно загрузки шрифта.

4. Основной экран редактора.

Основной экран порограммы включает в себя:
  1. Область для редактирования изображения символа.
  2. Кнопки изменения ширины символа и смены символа для редактирования. Эти кнопки находятся наверху экрана.
  3. Окно просмотра символа в натуральную велечину.
  4. Тулбар, это набор из 15 кнопок которые позволяют изменять изображение символа или его часть.
  В области для редактирования можно изменять любой бит изображения. Нажмите на любую ячейку и состояние бита поменяется на противоположный.
Рисунок N:4 Основной экран редактора
  Кнопки изменения ширины символа позволяют уменьшать или соответственно увеличивать горизантальный размер знакоместа. Максимальная ширина изображения 25 точек.
  Кнопки смены переключают редактор на предыдущий или последующий символ. Между этими кнопками находится поле в котором индицируется десятичный ASCII код редактируемого символа. Здесь вы так же можете ввести ASCII код символа который намереваетесь редактировать. `DFL' означает, что это символ по умолчанию (default). Символ по умолчанию будет отображаться в случае когда программа выводит на экран символ без изображения (несуществующий символ), либо символ с нулевой шириной.
  Иконка просмотра символа работает так же как кнопка для вызова окна селектора символов.

5. Окно тестирования шрифта.

Окно тестирования шрифта позволяет вам видеть текст напечатанный шрифтом котороый вы разрабатываете.
Рисунок N: 5 Окно тестирования шрифта.

Введите текст который вы хотите протестировать в поле или можете использовать кнопки '123', 'Abc', 'All' для заполнения поля соответсвующей последовательностью символов. Используйте клавишу 'Exit' для выхода из основной программы.

6. Панель инструментов.

Панель инструментов это группа из 14 кнопок которые оперируют с выделенной областью или со всем символом.
Рисунок N: 6 Панель инструментов.

,,, Эти четыре большие стрелки позволяют сдвинуть все изображение или только выделенную область в четырех направлениях: Влево, вправо, вверх или вниз.
, Используйте эти две кнопки для вращения изображения. Эти кнопки вращают по часовой и против часовой стрелки только квадратную область.
, Эти две кнопки позволяют зеркально переворачивать изображение (сверху вниз и слева на право).
С помошью этой кнопки вы сможете инвертировать либо все изображение либо только его выделенную часть.
Эта кнопка очищает всю или выделенную область.
Эта кнопка или команда Мark в меню Edit позволяет выделить область изображения. Когда эта кнопка активна (с'инвертирована) то включен режим выделения. Чтоб выделить область: надавите стилусом первый раз для установки границы области, надавив второй раз вы завершите выделение области.
Эта клавиша или команда Paste из меню Edit берет изображение из системного буфера и вставляет его в изображение символа который вы редактируете. Чтоб вставить изображение из буфера: сделайте эту клавишу активной. Затем нажмите стилусом где-нибудь в области редактирования, (появится изображение из буфера) ведите его в место в которое вы решили это изображение вставить, отожмите стилус от поверхности экрана для завершения операции.
Эта кнопка, а так же команда Copy в меню Edit заносит выделенную область или все изображение символа в системный буфер.
Эта кнопка или команда Cut в меню Edit заносит выделеную область в системный буфер и стирает выделенное изображение в редакторе.

7. Окно выбора символов.

Если в режиме редактирования нажать на иконку для просмотра редактируемого символа то появится окно для выбора символа "Glyph Selector" (См. Рисунок N: 7).
Рисунок N: 7 Окно выбора символа.


  В окне выбора символа вы можете использовать кнопки скроллирования и сам скроллбар для просмотра символов шрифта. Нажмите на выбранный символ а затем кнопку `ОК' и вы перейдете к его редактированию. Чтоб вернутся к редактированию без выбора символа нажмите на кнопку `CANCEL'.

8. Окно для записи, переименовывания и удаления шрифта.

  Вы можете записать шрифт в память Palm компьютера. Просто выберете в меню `FONT' пункт `SAVE/REN/DEL'. В окне записи 'SAVE/REN/DEL FONTS' (См. Рисунок N: 8) вы увидете список уже записанных шрифтов.
Рисунок N: 8 Окно выбора символа.


  Введите в поле `Name:' имя под которым вы будете сохранять шрифт. Установите 'Backup' бит архива если желаете чтоб записаный шрифт был сохранен на персональном компьютере во время архивирования. Нажмите кнопку 'Save'. Шрифт будет сохранен как первая запись в базу данных.
  Вы так же можете переименовать шрифт: введите в поле имя шрифта, нажмите на кнопку REN, откроется окно в котором вам нужно указать новое имя шрифта затем нажимте кнопку 'RENAME'. Для отмены переименовывания нажмите кнопку 'CANCEL'.
  Для удаления шрифта вам достаточно ввести его имя в поле `Name:' затем нажать на кнопку `Delete' и подтвердить удаление.
Для возврата в окно редактора нажмите кнопку `Exit'.


9. Информация о шрифте.

  Это информационное окно (Рисунок N: 9) позволяет увидеть информацию о шрифте который вы разрабатываете. Это окно показывает: Имя шрифта, Размерность (максимальную ширину и высоту), время и данные последней записи, флаг модификации, и количество свободной оперативной памяти PalmOS.

Рисунок N:9 Информация о шрифте.



10. Описание команд меню.

Редактор шрифтов FE имеет 3 меню: `FONT', `EDIT' и `OPTIONS':
Рисунок N: 10 Описание команд меню.


Меню FONT состоит из следующих команд:
Меню EDIT состоит из следующих команд:
Меню OPTIONS содержит следущие команды:

Шрифты в PalmOS.

  Это описание структуры шрифта построенно на результатах полученных опытным путем и из косвенных источников поэтому не гарантируется вся полнота информации как и ее безошибочность. Со временем это описание будет более детализированно.
  Шрифты PalmOS почти полностью соответствуют bitmap
'NFNT' шрифтам используемым на компьютерах фирмы apple.
      Шрифт представляет собой следующую структуру данных:

+-----------------------------------------------------------------+
|          Заголовок шрифта (Font Header) - 26 байт.              |
+-----------------------------------------------------------------+
|         Таблица изображений шрифта (BitImage Table).            |
+-----------------------------------------------------------------+
|         Таблица указателей (BitMap Location Table).             |
+-----------------------------------------------------------------+
|      Таблица смещений/ширин символов. (Width/offset table).     |
+-----------------------------------------------------------------+

ЗАГОЛОВОК ШРИФТА:
* Заголовок шрифта это таблица размером 13 слов (26 байт) и ее можно представить в виде струкутры данных языка Си:

--- [begin part of .../m68k-palmos-coff/include/PalmOS3/UI/Font.h: ---

typedef struct {
        SWord fontType;         // font type
        SWord firstChar;        // ASCII code of first character
        SWord lastChar;         // ASCII code of last character
        SWord maxWidth;         // maximum character width
        SWord kernMax;          // negative of maximum character kern
        SWord nDescent;         // negative of descent
        SWord fRectWidth;       // width of font rectangle
        SWord fRectHeight;      // height of font rectangle
        SWord owTLoc;           // offset to offset/width table
        SWord ascent;           // ascent
        SWord descent;          // descent
        SWord leading;          // leading
        SWord rowWords;         // row width of bit image / 2
} FontType;
--- [end part of .../m68k-palmos-coff/include/PalmOS3/UI/Font.h: ---

Описание элементов структуры заголовка:

fontType Значение определяющее тип шрифта. Из описания NFTN шрифтов сдесь может быть указано, что этот шрифт содержит символы различной ширины либо высоты, а так же характеристики многоцветности. В шрифтах от PalmOS это значение равно 0x9000.
firstChar Содержит ASCII код первого символа используемого в шрифте ( 0>= x <=255 ).
lastChar ASCII код последнего символа используемого в шрифте (0>= x <=255).
maxWidth Максимальная ширина символа в шрифте.
kernMax Растояние в пикселах от начала до левого края знакоместа. Если кернинг символа влево то значение отрицательно. В шрифтах PalmOS это значение обычно равно 0.
nDescent Если размеры таблиц шрифта слишком большые то значение этого поле является старшим словом смещения до начала Width/offset table (Таблицы смещений/ширин символов). См. owTLoc. В ином случае в этом поле содержится отрицательное значение descent.
fRectWidth Содержит ширину знакоместа символа. Поле fRectWidth обычно равно maxWidth.
fRectHeight Высота шрифта. В PalmOS высота всех символов шрифта одинакова.
owTLoc Смещение до начала Width/offset table (Таблицы смещений/ширин символов).

owTloc=rowWords*fRectHeight+(lastChar-firstChar)+8;

Если в шрифте слишком большие таблицы, то owTloc содержит младшее слово смещения, а в nDescent старшее.

nDescent=owTloc >> 16; owTLoc=owTloc & 0xFFFF;
ascent Расстояние в пикселах от начала знакоместа по направлению вверх.
descent Дистанция в пикселах от верха знакоместа по направлению вниз.

Обычно ascent+descent=fRectHeight.
leading Это дистанция в пикселах от descent линии строки текста до ascent линии другой строки текста. В шрифтах PalmOS это значение обычно равно 0.
rowWords Значение после деления длинны битовой линии в bitimage на 16.
Тобишь, длину линии в пикселах можно определить:

rowpixels = rowWords * 16.

Описание формата данных:


* Таблица изображений шрифта (BitImage Table):

Размер этой таблицы равен BitImageTableSize = rowWords * fRectHeight.
Распределение данных идет с верхней битовой строки изображения шрифта до нижней строки.

Пример BitImageTable шрифта высотой в 8 пикселов для двух изображений символов 'A', 'B' и default символа в бинарном представлении:
   +--------+-------+------+.......
-->00000000000000000000000000000000--+
+->00111111011111100111111110000000--+
+->01000010001000010100000010000000--+
   01000010001111100100000010000000
   01111110001000010100000010000000
   01000010001000010100000010000000   
   11100111011111100111111110000000   
   00000000000000000000000000000000   
   +--------+-------+------+.......

То же самое в шестнадцатеричном представлении:

   0000 0000 3F7E EF80 4221 4080 423E 4080
   7E21 4080 4221 4080 E77E 7F80 0000 0000

Битовая строка дополнена нулевыми битами до кратности 16.

* Таблица указателей (BitMap Location Table). Эта таблица содержит указатели на изображение каждого символа в BitImageTable. Последнее значение этой таблицы указывает на бит следующий за последним битом картинки от default символа.
  Для символов 'A', 'B' и default предыдущего примера эта таблица будет иметь вид:

0000 000A 0012 0020

По этой таблице можно узнать ширину символа по разнице его смещения и смещения последующего символа.

* Таблица смещений/ширин символов.(Width/offset table). В элементах этой таблицы находятся значения для всех символов шрифта. Эти значения содержат: в старшем байте смещение прибавляемое к kernMax и указывющее на керн символа, а в младшем байте ширину символа.
  Смещение в шрифтах PalmOS встречалось только равным 0.
  Когда символ в шрифте отсутствует то элемент таблицы равен -1 и менеджер шрифтов выводит начертание default символа. Таблица заканчивается значением -1.

Благодарности:
  Timothy Lyangouzov - за некоторые уточнения, в заголовке шрифта.


Уголок разработчика.


Шрифты от разработчиков.



Следующие шрифты от Erik Van Blokland ( www.letterror.com ):
LTRBitmaps.zip Архив семи красивых шрифтов. Готовых для подключения к системе программой fonthack.

Следующие шрифты от Jason R. Cupp:
spinsugar.zip Архив с шрифтами SpinSugar. Вполне подходят доя замены системных шрифтов!

Следующий архив со шрифтами от Rainer Zenz:
a-fonts.zip   Большое количество профессиональных шрифтов пркатически для всех нужд. Более читаемые и элегантные шрифты, разработаны как замена для шрифтов Palm OS. Основной набор включает 12 шрифтов для всех нужд. Остаток это все начиная от Ultra-Small до Blackletter. Все с полным набором дополнительных символов.


Этот шрифт от Harry Konstas, www.total.net:
hkfont.zip Это моноширный шрифт размером 40x25 (Английский, code page 437) разработан, чтоб использовать с программами QED и onBoardC (для программистов).


Этот шрифт от Ronald E. Buelow, http://www.ealoha.com/palm
coolfnts.zip Несколько Крутых шрифтов Palm.
Замените несколько шрифтов Palm OS на кое-что более читаемое, удобное для установки.
Полный архив включая HackMaster, FontHack и несколько полезных программ для работы со шрифтом.


Следующий архив от Jiro:
Fonts.zip Это архив прекрасных шрифтов. (Palatino, Verdana, Coronet).

Следующие шрифты включены в архив Редактора Шрифтов:
Narrowed.pdb Вы можете использовать их взамен стандартных шрифтов PalmOS.
Times.pdb Шрифт таймс. Можно заменить на большие системные шрифты.

ПРИМЕЧАНИЕ1: Файлы с расширением (*.pdb) являются PalmOS базами данных с одной записью содержащей данные шрифта. Нет необходимости в распаковщиках. Эти файлы готовы для загрузки в память устройства.
ПРИМЕЧАНИЕ2: Если вы разместили свои шрифты на сайте PalmGear H.Q. добавьте их так же и в подкатегорию Development:Fonts.



Как использовать свои шрифты в разрабатываемой программе. Palm OS v3.x

Для того чтоб использовать свои шрифты в разрабатываемой программе вам следует:

  1. Перенести базу данных шрифтов с карманного компьютера на персональный. В директориях архива у вас будет файл <font_name>.pdb из которого вам нужно изъять данные шрифта.
      Если вы используете программу
    PilRC v2.03a by Wes Cherry of Scumby Soft тогда пропустите следующие шаги и улучште свой .rcp файл новыми командами.
  2. Используйте любой редактор бинарного кода для извлечения данных шрифта. Шрифт находится после заголовка базы данных (шрифт начинается с шестнадцатеричного значения 0x9000, это первые 88 байт с начала файла).
  3. Данные с шрифтом могут быть присоеденены как ресурс к программе которую Вы разрабатываете. В конце процесса файла Makefile все файлы с расширением *.bin прилинковываются к программе как ресурсы. Первая часть имени файла *.bin это имя ресурса вторая это его ID номер. Для того чтоб добавить свой шрифт к программе вы должны сделать копию файла с данными шрифта в файл с *.bin расширением и дать ему имя и номер ID.
    Назовем ресурс шрифта как 'pFNT' и его ID 1000 (0x03e8).
    Для примера вриведенного внизу, имя файла ресурса будет 'pFNT03e8.bin'. Добавьте строку `cp customfont.nft pFNT03e8.bin' в файл MakeFile до момента линковки.
  4. Посмотрите на пример исходного текста для GNU C:
    --- [ globals.h ] ---
    #define CustomFont0		129
    ...
    
    --- [ main.rcp ] ---
    ...
    LABEL "Test of my Font" AUTOID AT (CENTER 64) USABLE FONT CustomFont0
    ...
   
    --- [ main.c ] ---
    static  VoidHand		FontHandle0;
    ...
    static int StartApplication( void )
    {
     /* 'pFNT' и 0x03e8 есть имя ресурса и его шестнадцатеричный  
     номер ID. */
     FontHandle0=DmGetResource( 'pFNT', 0x03e8);

     /* Здесь мы определим ID блока памяти для шрифта. ID шрифта 
     должен быть больше чем 128 потомучто значение меньшее 128  
     зарезервированно для нужд системы. */
     FntDefineFont( CustomFont0, MemHandleLock( FontHandle0 ));
     FrmGotoForm( FormID_MainForm );
     return 0;
    }
 
    static int StopApplication( void )
    {
     FrmCloseAllForms();
     
     /* Разблокировать блок памяти и освободить ресурс шрифта */
     MemHandleUnlock( FontHandle0 );
     DmReleaseResource( FontHandle0 );
     return 0;
    }
    ------------------
ПРИМЕЧАНИЕ: FntDefineFont() функция работает только на версиях PalmOS v3.x и выше, проверяйте версию операционной системы до запуска этой функции. Описание включения шрифтов на PalmOS версии 2.x еще пишется и скоро будет доступно.

Пример для пользователей MetroWerks CodeWarrior(tm).

Конструктор ресурсов от CodeWarrior's (v1.5lite) не позволяет использовать нестандартные ID шрифта вообще. Используйте иные утилиты для ресурсов, или изменяйте ID шрифта объектов из программы.
Для того чтоб подключить данные с шрифтами как ресурс в проект CodeWarrior'а Вам следует:
  1. Зайти в 'EDIT menu'->'project name Settings'->'Targets'->'File Mappings'
  2. Установить следующие поля: FileType как 'TEXT', extension - '.r', Compiler 'Rez', очистить все флаги, нажать 'Change' затем кнопку 'Save'.
  3. Создать текстовой файл res.r:
        --- [ res.r ] ---
        ...
        READ   'pFNT'  (0x3e8)  "customfont.nft";
        ...
        -----------------------
    
  4. Добавить res.r файл в группу ресурсов в проект и запустить make процесс.

Ссылки на полезные утилиты.

Pilot Font Editor by Sergey Menshikov. Иное средство разработки шрифтов работающее под Windows(tm).
FontHack123 это расширение к утилите HackMaster'а нужна для замены шрифтов системы своими.
FontHackPlus by Rick Bram другое расширение HackMaster'а для подстановки шрифтов.
Pilot Font Tools by New Data Masters. Иное средство разработки шрифтов работающих под управлением среды Windows(tm).
HackMaster эта программа является мэнеджером для FontHack расширений.
TrueType позволяет вам видеть данные на Palm устройтсве используя TrueType шрифты взамен встроенных.
AAA Font View by Richard Hartman. Эта программа позволяет вам просматривать шрифты загруженные в Палм.


PilRC это компилятор ресурсов для PalmOS. Последняя версия позволяет добавлять шрифты как ресурс.
.Pdb Files by Kenn Shirrif. Java программа которая разбивает .pdb файлы на состовляющие компоненты (один на каждую запись). Это полезная программа для получиения данных шрифта из .pdb файла созданного программой FE.
Makefont68 конвертор растровых шрифтов от систем Macintosh в Palm шрифты.
Z'Catalog Утилита для PalmOS баз данных. Позволяет пересылку шрифтос через ИК порт.


ПРИМЕЧАНИЕ: Если вы обнаружите неработающую ссылку либо хотите добавить свою, тогда свяжитесь с автором.

Для загрузки Zip архива последней демо версии. Для покупки в режиме он-лайн по кредитной карточке. Для приобретения полной версии в странах Европы.

Эта страница дополнена 14-ИЮЛ-2001. Отсылайте ваши пожелания на E-mail: info@symbioforge.com. Спасибо.

Palm(tm) зарегистрированная торговая марка Palm Computing inc., 3Com Corporation и их владельцев. Другие продукты и имена могут быть торговыми марками или зарегестрированными торговыми марками их владельцев.