2

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

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

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

有人告诉我,我可以有一个小应用程序在客户端上侦听 Web 服务,该应用程序反过来与打印机而不是服务器或浏览器对话,但不知道如何去做。此外,我很可能需要听取任何打印机反馈(例如,由打印机生成的优惠券编号)并将其交回服务器。

有任何想法吗?

4

2 回答 2

1

几年前我做了类似的事情。前。但在我的情况下,服务器和 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) { 
    }
}
于 2008-10-01T00:58:33.837 回答
0

这就是为什么你有小程序。但是小程序在安全沙箱中运行。但是,如果给在 webapp 中运行的小程序适当的权限,它可以打开套接字、写入文件、写入串行端口等。

于 2008-10-01T01:30:48.970 回答