Сообщение от
CityAceE
Они пропорциональные не только по горизонтали, но и по вертикали. Это ключевой момент и их отличительная черта...
Если под пропорциональностью по вертикали имеется ввиду возможность печати в одной строке текстов с разной высотой шрифта, то это скорее свойство процедуры печати, а не шрифтов, поскольку в каждом фонте все символы имеют одинаковую высоту.
Код:
Структура файла фонта для Пальма
typedef struct FontTag {
0 Int16 fontType; 9000h тип фонта
2 Int16 firstChar; 0003h 3 код первого символа
4 Int16 lastChar; 001Ah 26 код последнего символа
6 Int16 maxWidth; 000Bh 11 максимальная ширина в пикселях
8 Int16 kernMax; 0000h 0
10 Int16 nDescent; 0000h 0
12 Int16 fRectWidth; 000Bh 11 обычно равно макс.ширине
14 Int16 fRectHeight; 000Ah 10 высота в пикселях
16 Int16 owTLoc; 00A1h 161 смещение от тек.адреса до табл.ширин /2
18 Int16 ascent; 0009h 9 число пикселей от верхушки до базовой линии
20 Int16 descent; 0001h 1
22 Int16 leading; 0000h 0
24 Int16 rowWords; 000Dh - 13
} FontType;
26 - Дальше идет Height строк BitMap
16+(161*2)-(26-3)*2 - Затем таблица смещений символов в BitMap
16+(161*2) - Затем таблица ширины каждого символа
Надо иметь ввиду, что в файле слово записывается в формате: Старший, младший.