2012-05-07 2 views
0

Я хочу написать класс POS-принтера в java. Все кажется простым с низким кодированием ESCPOS, но у меня вопрос о событиях с принтером. Как я могу понять, является ли принтер ошибкой или заканчивается рулон бумаги? Я прочитал ссылку команды ESCPOS, и каждая команда (очевидно) однонаправлена ​​для принтера. Например, я не могу распечатать квитанцию, если бумага заканчивается, и если это произойдет, мое приложение должно знать и прекратить регистрацию проблем с наличностью.События события EscPos в java

спасибо.

ответ

1

Насколько я помню, бумага и другие основные события сигнализируются (аппаратным) событием. Чтобы получить эти события, вам необходимо добавить событие-слушатель на свой порт (ParallelPortEventListener или SerialPortEventListener).

http://docs.oracle.com/cd/E17802_01/products/products/javacomm/reference/api/javax/comm/ParallelPortEventListener.html

+0

Хорошо и то, что о классе PrinterStateReason? Я не могу понять, как его использовать. – Tobia

+0

Я думаю, что этот класс относится к java-печати api. Принтер api использует драйверы системного принтера, которые могут использовать специальные двунаправленные команды поставщика, которые возвращают больше информации о состоянии, чем аппаратные выводы. Если вы хотите написать собственный драйвер вашего независимого поставщика, вы не получите больше информации, чем аппаратные события. – Andreas

+1

Ooops, я нашел спецификацию escpos с описанием двунаправленного параллельного режима: http://www.scribd.com/doc/26547463/ESC-POS-Command-Guide#outer_page_217 Мне это не нужно для моего основного принтера Водитель. Поэтому вам может потребоваться проверить входной поток для кодов ошибок. – Andreas

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