首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的远程打印模块

Java中的远程打印模块
EN

Stack Overflow用户
提问于 2008-10-01 00:41:49
回答 2查看 4.5K关注 0票数 2

我正在研究一个应用程序,将体育基于网络的销售点界面。

销售点PC (到目前为止,我还不确定它是在Linux还是Windows上运行)必须连接一个财务打印机,但就像任何web应用程序一样,它是处理所有东西的服务器。服务器和PoS机器都在同一个局域网上。

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

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

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 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

代码语言:javascript
复制
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) { 
    }
}
票数 1
EN

Stack Overflow用户

发布于 2008-10-01 01:30:49

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/155740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档