Отправка команды SGD на принтер Zebra и получение ответа с помощью Java

Я работаю над приложением Java, которое печатает этикетку на принтере Zebra. До сих пор я использовал язык ZPL и API печати Java, но ZPL недостаточно для моих дальнейших работ. Следующее, что мне нужно сделать, это (программно) проверить, установлен ли уже шрифт с указанным именем на принтере. Я обнаружил, что могу достичь своей цели с помощью команд SGD. Но я понятия не имею, как отправить его из приложения Java и получить ответ. Команда, которую я хотел бы отправить,

! U1 do "file.dir" "R:"

Кто-нибудь встречал подобную проблему? Принтер подключен к компьютеру через USB. Можно ли использовать API печати Java для отправки команды и получения ответа, или, может быть, мне следует использовать сокеты или что-то совершенно другое?


person Michał Kolenda    schedule 06.06.2014    source источник


Ответы (1)


Такие SGD должны завершаться с помощью \r\n.

Кроме того, Zebra предоставляет Java API для упрощения связи с принтерами Zebra. Там есть куча Javadoc и примеров кода, которые поставляются с загрузкой

person Ovi Tisler    schedule 06.06.2014
comment
Мне нужно многоплатформенное решение, и в файле readme SDK указано, что он поддерживает операционные системы ПК с использованием Java Runtime Environment (JRE) v1.6+, но на самом деле это не так. Похоже, что API Zebra Java работает только на компьютерах с Windows. При получении списка USB-принтеров в Linux возникает исключение ConnectionException (с сообщением Invalid OS). - person Michał Kolenda; 09.06.2014
comment
USB-соединения основаны на драйверах, которые существуют только в Windows. TCP будет работать в Linux. Или вы можете расширить соединение и сделать это через CUPS или собственный USB-накопитель Linux, если хотите. - person Ovi Tisler; 09.06.2014