0

我是信息亭打印机的新手。

我需要将一个字符串从一个 java 应用程序发送到一个 zebra kr203 kiosk 打印机。

这台机器连接到一台 Windows 7 电脑并安装了它的驱动程序。打印测试页工作正常。

我还为打印机安装了设置实用程序,它们允许通过 EPL2 语言向它发送命令。同样,我对 EPL2 完全陌生,但我尝试了一些示例命令,但没有任何效果。

有人可以写一些基本的java代码来向打印机发送一个短字符串吗?

没有 GUI 只需要一个简单的命令行应用程序。

编辑:我在谷歌上找到了一些代码,它得到了正确的 printService,但它仍然不会打印出任何东西。

编辑编号 2:我最终使用了他们网站上提供的 Zebra SDK。他们在那里保存代码示例,您可以通过谷歌搜索轻松找到这些示例。我编辑了旧代码,因为它没用。

使用 SDK 和示例,我发现打印机实际上使用 ZPL2 而不是我最初认为的 EPL。

SDK 有自己的 API 用于发送命令,对我来说工作得非常顺利。

4

2 回答 2

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" +
                    "^A@N,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();
于 2015-04-09T07:50:54.267 回答
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();
    }

} `

于 2015-04-07T12:50:45.963 回答