Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ESC коды управления матричным принтером [D7, WinXP]


znayu ©   (2009-08-28 12:10:00) 

Доброго времени суток!
Стролкнулся с задачей - необходимо  на приентере OKI работающего под эмуляцией EPSON FX установить отступ от левого края бумаги (горизонтальную позицию печатающего элемента). В инструкции нахожу:

Absolute Horizontal Position

ESC $ n n
27 36 n n
1B 24 n n

Move to position =
(n+(n256)) /60
inches from left
margin. n, n=0 to
255 Max. value:
n=48 n=3

Необходимо установить левый отступ равный 8мм. Соответственно расчитываю, что для получения значения в дюймах равное 8мм необходимо установить n = 19 и n = 0.

За дело:

 DirectPrint('Line1' +  #13 + #10 +
                 Chr(27) + Chr(36) + Chr(20) + Chr(0) + 'Line2'  );

Всё работает, но после этого кода Line2 превращается в набор случайных символов. Если заменить Chr(0) значение 0 на 1-цу то все работает замечательно, только отступ от левого края устанавливается больше 5 дюймов. Вопрос, что не так?


znayu   (2009-08-28 12:59:00) [1]

Вопрос решен открытием таблицы ASCII кодов и подробной документации по принтеру.


znayu   (2009-08-28 12:44:00) [2]

Проблема в том, что нужно установить параметр n равный 0. Но принтер реагирует странно на #0 или Chr(0) превращая символы в кракозябры. Может для нуля существует другое значение Chr?


Наверх

Титульная страница Поиск, карта сайта Написать письмо