2015-04-05 3 views
0

Я полный новичок в принтерах для киосков.Как напечатать строку из java в Zebra kr203?

Мне нужно отправить строку из приложения java в принтер киоска zrbra kr203.

Машина подключена к окну 7 шт. И установлены его драйверы. Печать тестовых страниц отлично работает.

Я также установил утилиты настройки для принтера, и они позволяют отправлять команды через EPL2-язык. Опять же, я совершенно новый для EPL2, но я пробовал некоторые примеры команд и ничего не работал.

Может кто-нибудь, пожалуйста, напишите какой-нибудь базовый код java для отправки короткой строки на принтер?

Никакой GUI не требуется просто приложение командной строки.

EDIT: Я нашел код на google, который получает правильный printService, но он все равно ничего не распечатает.

EDIT NO. 2: Я закончил использование SDK Zebra, представленного на их веб-сайте. Они содержат примеры кода, которые вы можете легко найти при помощи Google. Я отредактировал старый код, поскольку он бесполезен.

Используя SDK и примеры, я понял, что на самом деле принтер использует ZPL2 вместо EPL, как я изначально думал.

У SDK есть свой API для отправки команд на нем, который работает совершенно плавно для меня.

+0

Привет, Как вы можете распечатать билет с зебры kr203 с помощью Java, могли бы вы поделиться кодом со мной? – Rastalovely

+0

Привет, я использую принтер zebra KR203, используя это руководство https://www.zebra.com/content/dam/zebra/manuals/en-us/printer/kr203-pm-en.pdf, но синтаксис отложен. – Rastalovely

ответ

1

Это то, что я в конечном итоге с помощью:

String defaultPrinter = PrintServiceLookup.lookupDefaultPrintService().getName(); 
com.zebra.sdk.comm.Connection myconnection = new com.zebra.sdk.comm.DriverPrinterConnection(defaultPrinter,1000,1000); 
myconnection.open(); 
com.zebra.sdk.printer.ZebraPrinter myprinter = ZebraPrinterFactory.getInstance(myconnection); 
String command = "^XA\n" + 
        "^FO50,50\n" + 
        "^[email protected],20,20,E:TT0003M_.FNT\n" + 
        "^FDUplatili ste XXXX na račun XXXXXXXXXX^FS\n" + 
        "^FO50,150\n" + 
        "^A0,32,25\n" + 
        "^FD"+ date.toString()+ "^FS\n" + 
        "^FO50,250\n" + 
        "^A0,32,25^FDSlavnoska Avenija 19, 10000 Zagreb^FS\n" + 
        "^XZ"; 
myprinter.sendCommand(command); 
myconnection.close(); 
+0

У меня есть копия и вставка вашего кода, но я получаю эту ошибку «Ошибка en la con com.zebra.sdk.comm.UsbNativeCodeConnectionException: родной код dll не загружен». Не могли бы вы мне помочь?? – Rastalovely

0

У вас есть несколько принтеров на выбор ... или только один принтер?

private void printLabel() { 
     try{ 
      FileOutputStream fos = new FileOutputStream("\\Your Printer Here"); 
      PrintStream ps = new PrintStream(fos); 

      //try with the EPL commands or take a look at the ZPL programming guide 
      String commands = "N\n" + 
        "A50,50,0,2,2,2,N,\"" + label + "\"\n" + 
        "B50,100,0,1,2,2,170,B,\"" + label + "\"\n" + 
        "A50,310,0,3,1,1,N,\"" + czas + "\"\n" + 
        "P1\n"; 

      ps.println(commands); 
      ps.print("\f"); 
      ps.flush(); 
      ps.close(); 

    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

} `

+0

У меня есть несколько принтеров с установленной Zebra по умолчанию. Кроме того, System.out.println («Принтер по умолчанию:» + defaultPrinter); возвращает Зебра. – user3779674

+0

@ user3779674 Просто любопытно - я написал программу, которая использовала ZPL, но мне нужно было только использовать один принтер, чтобы я закодировал путь в FileOutputStream. Поставил бы это, если хотите, но вам, вероятно, бесполезно. Я также мог немного помочь с ZPL .. не так много с EPL (извините) – born2bmild

+0

@ born2bmild Принтер должен поддерживать ZPL. Пожалуйста, напишите свой код, и я дам ему попробовать. Я могу удалить все остальные принтеры, чтобы уйти. Это просто офисный тест, ничего критического. – user3779674

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

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