现在,我正在为Seam2中的一家公司开发一个用于Point Of Sales的应用程序,我的客户想要直接从该应用程序打印发票。目前,我只生成PDF的发票和用户选择打印机,并按下打印按钮,但他们想要更快,他们也有2台打印机:爱普生TM U220的门票和普通打印机的发票。因此,我想研究一下直接从网页打印的问题。
我听说过最准确的替代方案: Java Web Start和Applets,但我不知道哪一个最适合实现这一点。我读到,使用applets必须处理身份验证内容或权限(嗯,也许JWS也需要处理,但要少一点),并且Applets已经停止使用;另一方面,使用Java Web Start,我基本上可以开发一个在打印机中打印内容的简单应用程序,但我不知道使用JWS是否可以实现这一点。
我不知道JWS是否可行的一件事是,如果我可以从web应用程序(一个bean,因为我正在使用Seam 2)传递数据,例如,将打印流或PDF流传递给JWS应用程序,并传递打印机的名称,我的意思是,我只想在JWS应用程序/小应用程序中具有打印发票或票据的逻辑,我想从我的web应用程序生成PDF或流,所以我不知道这是否可能。
你认为哪种选择是最好的?JWS还是Applets?关于打印库,我读到过JAVA POS,但我可以使用任何库,即使有必要也可以使用付费库。
致以问候。
发布于 2012-08-30 07:51:14
你认为什么替代方案是最好的?
对于“最少点击”,请使用完全受信任的applet或JWS应用程序。使用已由CA颁发的数字证书(例如Verisign)签名。
用户将被提示接受代码一次,并且可以选择始终记住“始终信任”的决定的复选框。
要么是JWS应用程序。或小应用程序然后可以利用Java AWT printing应用程序接口。
至于在嵌入式applet和自由浮动JWS之间的选择。使用最适合该用例的应用程序,但请注意,applet需要更高的维护。
发布于 2012-08-29 22:00:46
您没有考虑在您的普通html/jsp中使用JavaScript作为选项吗?阅读更多here
发布于 2012-08-29 23:22:07
基本上,JWS允许用户使用web浏览器直接从本地计算机启动使用Java平台的应用程序。这项技术的一些关键好处包括全球分布式应用程序的无缝版本更新,以及对Java虚拟机的内存分配的更好控制。换句话说,您将Jar文件放在1处,这样就很容易对其进行更新。
您只需创建一个带有JNLP扩展名的特殊XML文件。该文件与Java虚拟机相关联,因此它将执行该文件,并启动从和URL下载的桌面应用程序(Jar文件)。
我建议您使用它而不是applet,因为如果您使用applet,您将不得不处理来自浏览器的打印权限。另一方面,由于您使用的是桌面应用程序,因此您不再需要许可才能在地下打印。但您必须处理打印机配置,因为每台pc可能具有不同的打印机设置。我使用这种技术开发了各种应用程序,这些应用程序打印时没有弹出窗口,它只需使用默认打印机,然后发送它。首先,它创建PDF文件,然后将其保存到本地,然后打印。
https://stackoverflow.com/questions/12178284
复制相似问题