2015-04-05 48 views
0

我是一個完整的售貨亭打印機新手。如何從java打印字符串到Zebra kr203?

我需要從java應用程序發送一個字符串到斑馬kr203 kiosk打印機。

該機迷上了在Windows 7 PC,並安裝它的驅動程序。打印測試頁面正常工作。

我還安裝了打印機的安裝實用程序,它們允許通過EPL2語言向其發送命令。再說一遍,我是EPL2的新成員,但我嘗試了一些示例命令,但都沒有成功。

有人可以寫一些基本的java代碼發送一個簡短的字符串到打印機?

沒有GUI需要的只是一個簡單的命令行應用程序。

編輯:我發現一些代碼在谷歌獲取正確的printService,但它仍然不會打印任何東西。

編輯號碼。 2:我最終使用了他們網站上提供的Zebra SDK。他們將代碼示例保留在那裏,您可以通過Google搜索輕鬆找到它們。我編輯了舊代碼,因爲它沒用。

使用SDK和示例我發現打印機實際上使用ZPL2而不是EPL,因爲我原先以爲。

SDK有它自己的API來發送命令,對我來說工作起來相當順利。

+0

嗨,你怎麼能打印用java斑馬kr203一票,你能與我分享你的代碼? – Rastalovely 2017-12-18 17:26:09

+0

嗨,I'm使用打印機斑馬KR203使用本手冊https://www.zebra.com/content/dam/zebra/manuals/en-us/printer/kr203-pm-en.pdf但sintaxis是輸精管。 – Rastalovely 2018-01-09 00:04:03

回答

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 com con.zebra.sdk.comm.UsbNativeCodeConnectionException:本機代碼dll沒有加載。」你可以幫我嗎?? – Rastalovely 2018-01-09 00:01:55

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(「Default printer:」+ defaultPrinter);返回斑馬。 – user3779674 2015-04-07 13:03:16

+0

@ user3779674只是好奇 - 我寫了使用ZPL編程,但我只需要使用一臺打印機,所以我harded編碼在FileOutputStream中的路徑,會後,如果你喜歡,但它可能是沒有用的給你。我也可以用ZPL幫助一點。不是很多用EPL(對不起) – born2bmild 2015-04-07 13:16:07

+0

@ born2bmild打印機應該支持ZPL。請發佈您的代碼,我會試一試。我可以刪除所有其他打印機,以實現它。這只是一個辦公室測試,沒有關鍵。 – user3779674 2015-04-07 13:47:25