2008-10-16 8 views
5

Я пытаюсь программно подавать бумагу на принтере pos (Epson TM-U220D). Проблема заключается в том, что последняя строка документа не печатается, а печатается как первая строка следующего документа. Я попробовал POS для .NET, отправив команду «ESC | flF», также попытался отправить исходную команду esc/pos с помощью последовательного порта, но он не работает. Есть идеи?Подающая бумага на POS-принтере C#

+0

Я тоже, но теперь я понимаю, что он означает «Точка сбыта». – 2008-10-26 07:16:24

+1

Вы можете скачать спецификацию серии TM-T88III, в которой перечислены некоторые команды ESC/POS. http://www.jarltech.com/ger_new/new/support/cd/TM-T88III_spc_e.pdf – stukelly 2009-04-28 16:52:31

ответ

0

Если принтер находится на LPT1, раскошеливаться DOS и дать CMD.EXE или COMMAND.COM независимо от C# эквивалент этого BASIC выражение:

"ECHO " & Chr(12) & ">LPT1" 

Либо это, либо присоединять Chr (12) к выходному тексту.

3

Вам понадобится рано или поздно полный номер ESC/POS Application Programming Guide. Несколько лет назад я получил копию у своего дилера EPSON. В то же время, я нашел с помощью Google ссылку на FAQ for ESC/POS здесь: http://postechgroup.com/updata/support/drivers/EPSON/FAQ_ESCPOS.pdf

В вашем случае, команда печатает LF управления данными в буфере печати и подает одну линию на основании расстояния между текущей строки.

ASCII: LF

Hex: 0A

Decimal: 10

0

Как говорит повышение, вам нужно получить форму-подачи/FF/ASCII 12 к порту принтера. В C или C++, если вы открыли свой принтер в виде файла, это будет

fprintf(printerfile,"%c",12); 

Проблема иногда возникает на этих принтерах, что выходной буфер фактически не обрабатывается/покраснел до возврата каретки не записывается. Вы также можете вручную очистить поток. Таким образом, вы бы затем использовать

fprintf(printerfile,"%c%c",12,13); 
fflush(printerfile); 

Легко сделать ошибку при выводе на устройства, такие как последовательные принтеры является то, что средства связи и печати асинхронно в главном приложении. Таким образом, важно не закрывать порт принтера сразу после завершения печати, поскольку это может привести к потере или повреждению окончательного выходного буфера.

(К сожалению, это C, а не .NET, я один из тех C++ старожилов, который не перешел)

Edit: Чтение alexandruls комментарии на мой пост, я хорошо моих получили это неправильно. Звучит так, будто вы можете получить нежелательную форму, потому что вы неправильно задали длину страницы, или по умолчанию неверно. Проверьте группу ESC C n групп Epson, чтобы преодолеть это.

+0

Пожалуйста, прочтите FAQ для ESC/POS, правильная команда - Line Feed (hex 0A, decimal 10). – alexandrul 2008-10-16 07:27:32

0

Вы разрезаете бумагу? Если вы разрезаете бумагу, положение резца выше, чем печатающая головка. Вам необходимо передать несколько строк перед отправкой команды cut. Вы должны просто форматировать строку с помощью 5 строк (LF -> Chr (10)), отправить их, а затем отправить команду вырезания.

В эквалайзере Epson EScPOS есть команда GS V, которая будет подавать и разрезать бумагу в правильной точке.

 Смежные вопросы

  • Нет связанных вопросов^_^