2015-04-05 18 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