java - 将字节数组打印到热敏打印机Java

标签 java zebra-printers

我正在使用 Java 应用程序向 FedEx 发出 Web 服务调用,并尝试将标签打印到本地 USB 连接的热敏打印机。 我将从 FedEx 获取字节数组作为响应,并希望将其打印到连接热敏打印机的客户端机器上

DocAttributeSet das = new HashDocAttributeSet();
PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();

PrintService ps = PrintServiceLookup.lookupDefaultPrintService();
DocPrintJob job = ps.createPrintJob();
Doc doc = new SimpleDoc(image, DocFlavor.BYTE_ARRAY.AUTOSENSE, das);    
job.print(doc, pras);

非常感谢您的帮助,或者建议我/将我重定向到可以找到解决方案的链接。

更新:我想通过基于 Web 的应用程序将 FedEx 标签打印到本地 USB 连接的热敏打印机上。

我有如上所述编写的服务器代码,我在本地打印标签时遇到问题。

上面的代码正在寻找连接在应用程序服务器上的打印机。

当客户端单击“打印标签”按钮时,FedEx web 服务调用成功并正确返回 ZPLII 格式字节数组,但“想要将该字节数组推送到客户端机器并打印到热敏打印机”

只有从 FedEx 取回字节数组后我才能正常工作,之后我无法实现将字节数组带回打印机以在热敏打印机上打印。

最佳答案

我用了jZebra用于将其打印到本地 USB 连接的热敏打印机

这是我的代码。

在行动类

byte[] imageArr = ShipmentReply.getImage();
out = ServletActionContext.getResponse().getOutputStream();
out.write(imageArr);
out.flush();

在 jQuery 中

$.post("printFedexLabel", function(imageArr){
    printZebra(imageArr);
});

在 JSP 中

<applet name="jZebra" code="jzebra.PrintApplet.class" archive="${pageContext.request.contextPath}/jzebra.jar" width="1" height="1">
     <param name="printer" value="zebra">
</applet>

<script type="text/javascript">
   function printZebra(data) {
       var applet = document.jZebra;
       if (applet != null) {
          applet.append(data);
          applet.print();
    }
   }
</script>

就是这样......它工作得很棒。如果有人需要有关此实现的任何进一步信息的帮助,请告诉我。

关于java - 将字节数组打印到热敏打印机Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11481390/

相关文章:

Java - 信号/槽机制

windows - 将 prn 文件发送到打印机 : Printing is extremely slow 时出现问题

.net - 收据打印机?

java - 如何使用 ^DG 命令将图像发送到 java 中的斑马打印机?

java - 什么时候应该开始使用字符串替换而不是 sprintf?

java - 为什么 ObjectOutputStream.readObject() 访问 MyClass.readObject()

java - 在 iText 7 中使用图像作为水印

barcode - 如何计算此 zpl 条形码的宽度(以点为单位)?

java - fragment 错误,transaction.replace()