我正在研究一个应用程序,将体育基于网络的销售点界面。
销售点PC (到目前为止,我还不确定它是在Linux还是Windows上运行)必须连接一个财务打印机,但就像任何web应用程序一样,它是处理所有东西的服务器。服务器和PoS机器都在同一个局域网上。
我必须实时发送销售数据,并通过使用串行端口的会计打印机,因此打印PDF甚至网页不是一个选择。
有人告诉我,我可以有一个在客户端监听web服务的小应用程序,它反过来与打印机对话,而不是服务器或浏览器,但我不知道如何做到这一点。此外,我很可能需要听取任何打印机反馈(例如,由打印机生成的优惠券号码),并将其返回给服务器。
有什么想法吗?
发布于 2008-10-01 00:58:34
几年前我也做过类似的事情。很久以前了。但在我的情况下,服务器和PC在同一个lan中。您的PoS是否在lan内?如果是的话,我会给你解释的。
同时,如果你有这个“小应用”,你可以看看下面的内容:
http://java.sun.com/j2se/1.4.2/docs/api/javax/print/PrintService.html
打印服务具有一种方法来发现在其上运行的计算机中注册的打印机。因此,在您的应用程序上收到来自服务器的消息后,您只需执行与上面链接中显示的代码类似的操作:
摘自,http://java.sun.com/j2se/1.4.2/docs/api/javax/print/PrintService.html
DocFlavor flavor = DocFlavor.INPUT_STREAM.POSTSCRIPT;
PrintRequestAttributeSet aset = new HashPrintRequestHashAttributeSet();
aset.add(MediaSizeName.ISO_A4);
PrintService[] pservices =
PrintServiceLookup.lookupPrintServices(flavor, aset);
if (pservices.length > 0) {
DocPrintJob pj = pservices[0].createPrintJob();
// InputStreamDoc is an implementation of the Doc interface //
Doc doc = new InputStreamDoc("test.ps", flavor);
try {
pj.print(doc, aset);
} catch (PrintException e) {
}
}发布于 2008-10-01 01:30:49
这就是你有applet的原因。但是applet在安全沙箱中运行。但是,如果给予在webapp中运行的小程序适当的权限,它就可以打开套接字、写入文件、写入串行端口等。
https://stackoverflow.com/questions/155740
复制相似问题