从JAVA Web App打印 - Applet或Java Web Start

时间:2012-08-29 12:44:31

标签: java web-applications printing applet java-web-start

现在我正在为Point Of Sales开发Seam 2公司的应用程序,我的客户希望直接从应用程序打印发票。目前,我只生成发票的PDF并且用户选择打印机并按下打印按钮,但是他们想要更快地完成,也有2台打印机:门票的EPSON TM U220和发票的普通打印机。所以,我想调查直接从网页打印。

我听说过最准确的替代方案:Java Web Start和Applets,但我不知道哪个是最好的才能实现。我读到applet你必须处理身份验证的东西或权限(好吧,也许JWS也可以,但少一点),并且Applet已经停止;另一方面,我可以使用Java Web Start开发一个简单的应用程序,在打印机中打印一些东西,但我不知道是否可以用JWS实现。

我不知道是否可以使用JWS的一件事是,如果我可以从Web应用程序传递数据(例如,因为我使用的是Seam 2),则传递打印流或PDF的流,到JWS应用程序,并传递打印机的名称,我的意思是,我只想在JWS app / Applet中打印发票或票据的逻辑,我想生成PDF或流来自我的网络应用程序,所以我不知道这是否可能。

您认为最好的选择是什么? JWS还是Applets?关于打印库,我读了JAVA POS,但我可以使用任何库,即使是必要的付费库。

问候。

3 个答案:

答案 0 :(得分:1)

  

您认为哪种选择最好?

对于“最少点击次数”,请使用完全受信任的小程序或JWS应用。使用由CA(例如Verisign)颁发的数字证书签名。

系统会提示用户接受一次代码,并可以选择始终记住“始终信任”的复选框。

JWS应用程序。或者applet可以使用Java AWT printing API。

关于嵌入式applet或自由浮动JWS之间的选择。使用最适合用例的方法,但请注意小程序需要更高的维护。

答案 1 :(得分:0)

你是不是在普通的html / jsp中考虑使用JavaScript? 阅读更多here

答案 2 :(得分:0)

基本上,JWS允许用户使用Web浏览器直接从本地计算机使用Java Platform启动应用程序。该技术的一些主要优点包括全局分布式应用程序的无缝版本更新以及对Java虚拟机的内存分配的更大控制。换句话说,你有1个放置Jar文件,所以很容易更新它。

您只需要创建一个具有JNLP扩展名的特殊XML文件。此文件与Java虚拟机关联,因此它执行它并启动从URL下载的桌面应用程序(Jar文件)。

我建议您使用它而不是applet,因为如果您使用applet,则必须处理来自浏览器的打印权限。另一方面,由于您使用的是桌面应用程序,因此不再需要在地下打印的权限。但是你必须处理打印机配置,因为每台电脑可能有不同的打印机设置。我使用这种技术开发各种应用程序,这些应用程序打印时没有弹出窗口,它只需要默认打印机,然后发送它。首先,它创建PDF文件,然后将其保存在当地,然后打印出来。