Web直接打印插件

问题描述 投票:8回答:4

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

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

Java解决方案也可以。但很明显,由于安装空间小和易于安装,因此不理想。

javascript flash printing activex
4个回答
1
投票

Adobe AIR可以作为部分解决方案吗?我之所以说局部的,是因为您首先必须说服/告诉人们下载打印机AIR应用程序,该应用程序基本上可以从浏览器中调用,在您的情况下,这是打印命令。

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


0
投票

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

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


0
投票

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

如果您想直接在打印机上打印而不打开对话框,请使用Java 2D Printing API。这使您可以精确设计要打印的内容并将其直接发送到打印机。另外,一个Java小程序可以使用Javascript和其他可能的技术与浏览器来回通信。


0
投票

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

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

我还考虑过Google CloudPrint,但从Web服务器端失败,因为Web服务器无法执行登录或将登录重定向到用户。

© www.soinside.com 2019 - 2024. All rights reserved.