gpt4 book ai didi

java - 使用 USB 连接的 Zebra 打印机在 Windows 7 中打印 ZPL

转载 作者:行者123 更新时间:2023-11-30 06:26:15 24 4
gpt4 key购买 nike

我正在尝试从 Windows 7 中的 Java 应用程序向通过 USB 连接的 Zebra TLP 2824 发送一些 ZPL 代码。我尝试了不同的方法,但仍无法打印。在驱动程序设置中,我激活了直通模式并尝试使用通用/文本模式驱动程序安装打印机,但没有任何效果。

我总是在打印队列中收到未指定的 Windows 错误。

这是我的代码:

        try {

PrintService psZebra = null;
String sPrinterName = null;
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);

for (int i = 0; i < services.length; i++) {

PrintServiceAttribute attr = services[i].getAttribute(PrinterName.class);
sPrinterName = ((PrinterName) attr).getValue();

if (sPrinterName.toLowerCase().indexOf("generic") >= 0) {
psZebra = services[i];
System.out.println(psZebra);
break;
}
}

if (psZebra == null) {
System.out.println("Zebra printer not found.");
return;
}
DocPrintJob job = psZebra.createPrintJob();

String s = "${^XA^FO100,100^BY7^BCN,100,Y,N,N^FD123456^FS^XZ}$";

byte[] by = s.getBytes();
DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;
Doc doc = new SimpleDoc(by, flavor, null);
job.print(doc, null);

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

最佳答案

看来我很亲近。我的打印机不支持 ZPL,我不得不使用 EPL2 代码。另一件事是使用 InputStream 而不是 byteArrays

改变的是:

DocPrintJob job = psZebra.createPrintJob();

String s = "N"+"\n"+
"q305"+"\n"+
"Q203,26"+"\n"+
"B55,26,0,1,2,2,152,B,\""+code+"\""+"\n"+
"P1,1";

InputStream is = new ByteArrayInputStream(s.getBytes());
DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
Doc doc = new SimpleDoc(is, flavor, null);

job.print(doc, null);
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}

关于java - 使用 USB 连接的 Zebra 打印机在 Windows 7 中打印 ZPL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14567028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com