Команда Zebra CPCL PCX переводит принтер в режим приема на неопределенный срок
Попытка печати на принтере Brother RJ-4230B в линейном режиме CPCL через Brother Print SDK.
Принтер застревает на «Получении», когда я отправляю эти байты, используя
driver.sendRawData(bytes)
:
! 0 200 200 2596 1
PW 575
TONE 0
SPEED 3
ON-FEED IGNORE
NO-PACE
BAR-SENSE
PCX 190 12
����
FORM
PRINT
���� представляет собой 4 байта тестового образа PCX. Есть и другие изображения, которые мне нужно отправить аналогичным образом.
Этот подход, кажется, соответствует руководству и примерам, которые я нашел в Интернете, но он не работает. Вот страница руководства для команды PCX:
Командная строка:
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 \r\n{pcx image data bytes}\r\nFORM\r\nPRINT\r\n
прежде чем он будет преобразован в байты.
Я также пробовал без
FORM
:
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 \r\n{pcx image data bytes}\r\nPRINT\r\n"
и без
\r\n
в командной строке РСХ:
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 {pcx image data bytes}\r\nPRINT\r\n"
Также различные комбинации с использованием STARTPCX.LBL и/или ENDPCX.LBL:
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 \r\n{pcx image data bytes}\r\nENDPCX.LBL\r\nPRINT\r\n
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 \r\n{pcx image data bytes}ENDPCX.LBL\r\nPRINT\r\n
STARTPCX.LBL\r\n! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 \r\n!{pcx image data bytes}\r\nENDPCX.LBL\r\nPRINT\r\n
STARTPCX.LBL\r\n! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 \r\n{pcx image data bytes}ENDPCX.LBL\r\nPRINT\r\n
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nSTARTPCX.LBL\r\nPCX 190 12 \r\n{pcx image data bytes}ENDPCX.LBL\r\nPRINT\r\n
Как я могу заставить принтер распознавать конец отправки встроенных данных?
2 ответа
Проблема оказалась в том, что я отправлял байты растрового изображения, когда нужно было преобразовать растровое изображение в файл PCX и вместо этого отправить эти байты. Кроме того, убедитесь, что вы не ставите \r\n между командой PCX и потоком байтов.
! 0 200 200 2596 1\r\nPW 575\r\nTONE 0\r\nSPEED 3\r\nON-FEED IGNORE\r\nNO-PACE\r\nBAR-SENSE\r\nPCX 190 12 {pcx image data bytes}\r\nPRINT\r\n"
См. ПРЕОБРАЗОВАНИЕ ФАЙЛОВ PCX ДЛЯ ПРИНТЕРОВ ZPL ИЗ КОМАНДНОЙ СТРОКИ .
Загрузка PCX в ZPL, например. быть
~DYR:ARROW,B,X,268,,
(чтобы было что тестировать).
Также представляется уместным справочник по языку команд принтера Camero (CPCL). Убедись, что
bytes
действительно монохромный. В примере размер
268
в основном сообщает об этом, когда загрузка завершена, заранее - подобно тому, как HTTP-сервер может сообщать длину содержимого перед загрузкой.
Когда переданный контент-длина больше, чем он есть на самом деле, он может ожидать большего в EOF.
В качестве альтернативы, для прямой печати файла PCX (пока поддерживается), команда, например. быть:
! 0 200 200 500 1
PCX 0 30
Наверное перепутал Brother с Zebra, но CPCL (см. справочник) все равно.
Окончание строки
\r\n
это ДОС; альтернативой было бы
\n
(не уверен, какой из них применяется для CPCL).
Отказ от ответственности: я знаю только серию QL, а не серию RJ, и у меня нет тестового оборудования.