从Java应用程序向Zebra打印机发送条形码

从Java应用程序向Zebra打印机发送条形码,java,zebra-printers,Java,Zebra Printers,我正在创建一个java应用程序,它从数据库中检索用户ID,将其转换为条形码,然后将其发送到打印机。我计划使用Zebra打印机,我想知道是否有人有从Java应用程序打印到Zebra打印机的经验;如果是这样的话,你能分享一些使这成为可能的代码吗 提前感谢,, Tumaini使用Zebra打印机有两种方法。第一种是在普通打印机上打印。Java打印基础知识在中有很好的解释。打印机将页尾视为标签的结尾。这种方法的缺点是所有的绘画都必须手工完成。也就是说,您不能使用内部打印机的条形码功能 第二种方法是将ZP

我正在创建一个java应用程序,它从数据库中检索用户ID,将其转换为条形码,然后将其发送到打印机。我计划使用Zebra打印机,我想知道是否有人有从Java应用程序打印到Zebra打印机的经验;如果是这样的话,你能分享一些使这成为可能的代码吗

提前感谢,,
Tumaini使用Zebra打印机有两种方法。第一种是在普通打印机上打印。Java打印基础知识在中有很好的解释。打印机将页尾视为标签的结尾。这种方法的缺点是所有的绘画都必须手工完成。也就是说,您不能使用内部打印机的条形码功能

第二种方法是将ZPL命令直接写入打印机。大概是这样的:

PrintService pservice = ... // acquire print service of your printer
DocPrintJob job = pservice.createPrintJob();  
String commands = "^XA\n\r^MNM\n\r^FO050,50\n\r^B8N,100,Y,N\n\r^FD1234567\n\r^FS\n\r^PQ3\n\r^XZ";
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(commands.getBytes(), flavor, null);
job.print(doc, null);

缺点是您需要学习ZPL-Zebra编程语言。虽然它很简单,但是像图像和自定义字体这样的东西会让你头疼。Zebra网站上免费提供编程手册:并且。

不是每个Zebra打印机都有ZPL II,但是您可以使用EPL

Zebra.pdf的EPL2编程指南(评论部分的链接)

代码示例:

private static boolean printLabel(PrintService printService, String label) {
    if (printService == null || label == null) {
        System.err.println("[Print Label] print service or label is invalid.");
        return false;
    }
    String czas = new SimpleDateFormat("d MMMMM yyyy'r.' HH:mm s's.'").format(new Date());
    String command =  
            "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"
            ;
    
    byte[] data;
    data = command.getBytes(StandardCharsets.US_ASCII);
    Doc doc = new SimpleDoc(data, DocFlavor.BYTE_ARRAY.AUTOSENSE, null);
    
    boolean result = false;
    try {
        printService.createPrintJob().print(doc, null);
        result = true;
    } catch (PrintException e) {
        e.printStackTrace();
    }
    return result;
}

这种联系似乎已经消失了。改为使用此选项:历史引用不会占用堆栈中的空间