PDA

Просмотр полной версии : Как на принтер отправить ESC команду



Vedislav
26.10.2014, 18:39
Здравствуйте.
Собственно вопрос как на принтер в р кипере отправить ESC команду. На форуме писали, что надо подредактировать SERVPRN.FRM. Но как я ее не менял, но команда не отправляется. Команда имеет примерный вид в 16-ричном виде: 1B 50 70. Добавлял строки:
[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{HEX 1B 50 00 70},2,1,0,0

вместо {HEX 1B 50 00 70} писал и {1B 50 00 70} и {HEX 1B500070} и {<1B><50><00><70>}. Результата нет.
В дополнительных настройках принтера в винде добавил команду после печати документа - <1B><50><00><70>. И если из блокнота печатаю, то команда срабатывает. В данном случае звенит звонок.

sibgaba
05.11.2014, 12:54
Берете servprn, через feditor добавляете в конец строку, на нее добавляете текст "123", сохраняете.

Берете HEX редактор, открываете им форму servprn, находите там "123", в HEX кодах это будет "31 32 33" и вместо этого, так же в HEX, пишите "1B 50 70"

partyzan56
05.12.2014, 12:47
Берете servprn, через feditor добавляете в конец строку, на нее добавляете текст "123", сохраняете.

Берете HEX редактор, открываете им форму servprn, находите там "123", в HEX кодах это будет "31 32 33" и вместо этого, так же в HEX, пишите "1B 50 70"
Не работает способ.
Есть иные варианты?

sibgaba
05.12.2014, 12:51
Работает. Инфа 100%

Форму показывайте.
Какой принтер?

partyzan56
05.12.2014, 14:47
Работает. Инфа 100%

Форму показывайте.
Какой принтер?
Posiflex 6800.
Печать по LAN.
Форма вот

; ‘ҐаўЁб-ЇҐз вм
DocId=4
PrinterWidth=40
; ’ЁЇ Ўг¬ ЈЁ: 1 - Roll, 2 - Blank
Paper=1


; 1. ‡ Ј®«®ў®Є
[Section]


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{----------------------------------------},2,1,0,0


[NewLine]
Font=Big
Color=Normal
Cell=Text,0,13,{‘в®« #},2,1,0,0
Cell=SysVar,14,13,{$TABLE_NO},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,9,{ЋдЁжЁ ­в },2,1,0,0
Cell=SysVar,9,15,{$WAITER},2,1,0,0
Cell=Text,24,16,{‘в ­жЁп ђҐбв®а ­},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,5,{„ в },2,1,0,0
Cell=SysVar,5,10,{$CURRENT_DATE},2,1,0,0
Cell=Text,21,6,{‚pҐ¬п },2,1,0,0
Cell=SysVar,27,5,{$CURRENT_TIME},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,6,{ѓ®б⥩},2,1,0,0
Cell=SysVar,7,3,{$COVER},1,2,0,0
Cell=Text,13,12,{‘в®« ®вЄалв:},2,1,0,0
Cell=SysVar,26,10,{$OPEN_TIME},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{----------------------------------------},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,9,{Ќ §ў ­ЁҐ},2,1,0,0
Cell=Text,28,6,{Љ®«-ў®},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{----------------------------------------},2,1,0,0


; 2. ‘ва®Є Ў«о¤
[Section]


[NewLine]
Font=Normal
Color=Normal
Cell=SysVar,0,25,{$DISH_NAME},2,1,0,0
Cell=SysVar,30,7,{$QUANTITY},2,3,2,0


[NewLine]
Font=Normal
Color=Normal
Cell=SysVar,0,25,{$ALT_NAME},2,1,0,0


; 3. ‘ва®Є ¬®¤ЁдЁЄ в®а
[Section]


[NewLine]
Font=Normal
Color=Normal
Cell=SysVar,2,23,{$MODIFICATOR_NAME},2,1,0,0


; 4. ‘ва®Є ®вЄ § ®в Ў«о¤
[Section]


[NewLine]
Font=Normal
Color=Highlight
Cell=Text,0,6,{ЋвЄ § },2,1,0,0
Cell=SysVar,6,25,{$DISH_NAME},2,1,0,0
Cell=SysVar,31,7,{$QUANTITY},2,3,2,0


[NewLine]
Font=Normal
Color=Highlight
Cell=SysVar,6,25,{$ALT_NAME},2,1,0,0


; 5. ‘ва®Є ®вЄ § ®в ¬®¤ЁдЁЄ в®а
[Section]


[NewLine]
Font=Normal
Color=Highlight
Cell=SysVar,2,23,{$MODIFICATOR_NAME},2,1,0,0


; 6. ѓ®в®ўвм Ї®§¦Ґ
[Section]


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{------------ ѓ®в®ўЁвм Ї®§¦Ґ ------------},2,1,0,0


; 7. ”гвҐа
[Section]


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{----------------------------------------},2,1,0,0


[NewLine]
Font=Normal
Color=Normal
Cell=Text,0,40,{Pp},2,1,0,0

sibgaba
05.12.2014, 15:15
форму файлом приложите

amnch
05.12.2014, 15:22
3328
Попробуй это вроде для posiflexa
надо в доке к принтеру найти что всякие ESC последовательности обозначают
эта по-моему звонит в звонок
Одно только там внутри спец символы, некоторые редакторы могут их не показывать в часности
Alt+(1,3) символ ESC (Alt удерживаешь и на цифрах на клаве справа жмешь 1, затем 3 потом alt отпускаешь)
как то так

partyzan56
05.12.2014, 15:31
3329
форму файлом приложите
Вот.

satan
05.12.2014, 16:35
Кстати, команда 1B 50 00 70 вставленная в форму действительно работать не будет.
Кипер не умеет передавать нулевые байты.

partyzan56
05.12.2014, 17:25
Нет там нулевых бит.
3330

sibgaba
05.12.2014, 17:56
Я так понимаю что вы хотите звонилку заставить работать?

Официальную доку по командам данного принтера не нашел, если есть - выкладывайте.

Откуда вы взяли последовательность <1b> <50> <70>?

Мне на глаза все время попадаются 2 других:


1. <1B><6F><00> - длинный гудок
2. <1B><70><00><50> - звонок


Если Satan прав и для команды требуются нулевые байты - тогда печаль...
Я так понимаю, что кроме LAN на этом принтере (наверное у вас все таки Aura-6800L) должен быть еще и СОМ. тогда можно проверить так:

Цепляем принтер к станции по COM, грузим VC, создаем текстовый файл test.txt в который вписываем нужную ESC последовательность и прямо из VC копируем этот файл в COM1. Команда должна отработать.

Еще возможно у вас принтер в режиме эмуляции Epson и тогда команды Posiflex могут игнориться.

satan
05.12.2014, 18:51
Нет там нулевых бит.
Биты нулевые они всегда есть ;) в нашем случае речь про байты
ТС в самом начале неоднозначно написал. Если ему нужна команда 1B5070 - то работать будет. Если 1B 50 00 70 - То соответственно нет.

Brambrulet
05.12.2014, 18:51
Что-то мне подсказывает, что "1b 70 00 50" - это как раз Epson escape последовательность. Ссылка (http://content.epson.de/fileadmin/content/files/RSD/downloads/escpos.pdf)на руководство, 11-я страница.

только если по руководству делать, то я бы слал "1b 70 ff 50".

satan
05.12.2014, 18:54
Если принтер полностью совместим с Epson T88, то поможет объявить его таковым в редакторе и добавить в ини-файл строку: CutBell=ON

partyzan56
06.12.2014, 14:47
Чего делать-то?
Принтер совместим с Епсон Т88.

amnch
06.12.2014, 17:11
#7 не пробовал (сообщение под номером 7)