Web直接打印插件

时间:2011-07-13 15:49:44

标签: javascript flash printing activex

我们都知道在绕过浏览器打印对话框的浏览器中进行原生打印是不可能的,但是,我们需要直接打印,理想情况下我们也可以选择特定打印机,以及其他设置编程。

我知道存在执行此操作的ActiveX插件,但是,我们都知道ActiveX插件仅适用于IE。是否存在Flash或Silverlight中的现有插件,允许我们以编程方式设置打印机属性,然后直接打印而无需打开浏览器的本机对话框?

Java解决方案也可以。但显然,由于安装的占地面积和安装简便性,它并不理想。

4 个答案:

答案 0 :(得分:1)

Adob​​e AIR可以是部分解决方案吗?我说部分因为你首先必须说服/告诉人们下载你的打印机AIR应用程序,它基本上可以从浏览器调用,在你的情况下是打印命令。

AIR具有本机进程功能,因此您可以开发自己的可执行文件或使用任何其他命令行打印工具。 This可能是一个好的开始。

答案 1 :(得分:0)

我们也在研究类似的问题。我们当前的工作解决方案是嵌入一个具有与本地文件系统通信的权限的Java小程序。它仍然有点hacky,但是我们当前的系统有嵌入式applet将命令写入文件,这个文件正被一个已经声明所需打印机的后台“服务器”监视,并将根据所做的更改直接向它发送打印命令通过嵌入式applet到文件... Spaghetti有点解决方案,但我们在没有本机系统打印对话框的情况下100%工作。

可以修改此“服务器”以声明多台打印机,并根据写入该文件的其他命令打印到特定的一台打印机。

答案 2 :(得分:0)

我们也有类似的要求。我们倾向于采用“使用Java Applet”方法处理涉及浏览器无法自行完成的大多数问题。它并不总是最好的方法,但它是一致的,它可以完成独立应用程序可以执行的所有操作。

如果要在不打开对话框的情况下直接打印到打印机,请使用Java 2D Printing API。这使您可以准确设计要打印的内容并将其直接发送到打印机。此外,Java applet可以使用Javascript和其他可能的技术与浏览器来回通信。

答案 3 :(得分:-1)

如果打印机和Web服务器在同一网络上,一个简单的解决方案是让Web服务器直接打印到网络连接的打印机上。完全不涉及用户浏览器。

如果没有,则可以使用诸如PrintNode(https://www.printnode.com)之类的服务。他们消除了大部分复杂性,但是,如果您的打印使用量超出其免费套餐,则确实需要定期提供$。

我也考虑过Google CloudPrint,但是由于网络服务器无法执行登录或将登录重定向到用户,因此在网络服务器端失败了。