Java中的远程打印模块

我正在开发一个应用程序,它将运行基于Web的销售点界面。

销售点PC(目前我不确定它是否可以在Linux或Windows上运行)必须附加一个财务打印机,但与任何Web应用程序一样,它是处理所有内容的服务器。 服务器和PoS机器都在同一个LAN上。

我必须实时发送销售数据,并通过使用串口的财务打印机,因此打印PDF甚至网页都不是一种选择。

我被告知我可以在客户端上有一个小应用程序监听Web服务,而后者又与打印机而不是服务器或浏览器进行通信,但是不知道如何做到这一点。 此外,我很可能需要收听任何打印机反馈(例如,打印机生成的优惠券号码)并将其交还给服务器。

有任何想法吗?

我做了几年类似的事情。 前。 但在我的情况下,服务器和PC在同一局域网中。 你的PoS在局域网内吗? 如果是这样,我会向你解释。

与此同时,如果你有“小应用程序”,你可以看一下以下内容:

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) { } } 

这就是你有小程序的原因。 但applet在安全沙箱中运行。 但是,如果为在webapp中运行的applet提供了正确的权限,它可以打开套接字,写入文件,写入串口等。