我正在使用 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);
非常感谢您的帮助,或者建议我/将我重定向到可以找到解决方案的链接。
UPDATE:我想通过基于 Web 的应用程序将 FedEx 标签打印到本地 USB 连接的热敏打印机上。
我的服务器代码如上所述编写,我面临在本地打印标签的问题。
上面的代码正在寻找连接到应用程序服务器上的打印机。
当客户端单击“打印标签”按钮时,FedEx Web 服务调用成功并正确返回 ZPL 格式字节数组,但“想要将此字节数组推送到客户端计算机并打印到热敏打印机”.
只有在从 FedEx 取回字节数组之后,我才能执行任何操作将字节数组带回打印机以在热敏打印机上打印。
I used jZebra http://code.google.com/p/jzebra用于将其打印到本地 USB 连接的热敏打印机
这是我的代码。
在行动类
byte[] imageArr = ShipmentReply.getImage();
out = ServletActionContext.getResponse().getOutputStream();
out.write(imageArr);
out.flush();
在 jQuery 中
$.post("printFedexLabel", function(imageArr){
printZebra(imageArr);
});
In 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>
就是这样……效果棒极了。如果有人需要有关此实施的任何进一步信息的帮助,请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)