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

时间:2012-07-14 05:43:14

标签: 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);

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

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

我有上面写的服务器代码,我面临在本地打印标签的问题。

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

当客户端点击“打印标签”按钮时,FedEx webservice调用成功并正确返回ZPLII格式字节数组,但“想将此字节数组推送到客户端计算机并打印到热敏打印机”< / strong>即可。

只有在从FedEx返回字节数组之后,我才能实现将字节数组带回打印机以便在热敏打印机上打印。

1 个答案:

答案 0 :(得分:1)

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

这是我的代码。

在Action类

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>

多数民众赞成......它的确很棒。如果有人需要帮助,请告知我有关此实施的任何进一步信息。