2012-07-14 193 views
2

我正在使用Java应用程序向FedEx发出Web服务调用并尝试将标签打印到本地USB连接的热敏打印机。 我会从联邦快递得到字节数组作为响应,并需要打印到客户端机器,其中热敏打印机连接将字节数组打印到热敏打印机Java

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); 

你的帮助是高度赞赏,还是建议我/重定向我一个链接,我可以找到解决方案。

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

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

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

当客户端点击“打印标签”按钮,联邦快递的Web服务调用是成功和正确地返回ZPLII格式字节数组,但“希望这个字节数组推送到客户端计算机和打印的热敏打印机”

直到从FedEx得到字节数组后才开始工作,之后我就无法实现将字节数组带回打印机以在热敏打印机上打印。

+0

你显示的代码,但你不告诉预期的输出是什么,或为什么代码是错误的或它实际上做了什么,是在一般的mindreaders互联网? – 2012-07-14 05:47:36

+0

Jarrod。希望现在有道理。 – changeme 2012-07-14 15:27:03

+0

你还没有真正说出什么是不工作,什么是错误的,或者这里的其他任何东西都是一团代码和我正在做的事情。 – 2012-07-14 18:53:45

回答

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> 

完蛋了....它的工作真棒。请让我知道是否有人需要帮助的任何进一步的信息在这个实施。

相关问题