将命令发送到远程打印机

时间:2016-01-21 23:03:13

标签: printing cross-browser cross-platform

我正在开展一个网络项目,我需要能够直接与客户的打印机进行通信。客户通过浏览器使用我的应用程序,并希望能够单击按钮不间断地打印票证,这意味着浏览器没有弹出打印机对话框。此要求消除了许多向客户打印机发送信息的传统方式,因为我想要一个适用于任何浏览器的解决方案,使用VBSCRIPT或其他依赖浏览器的解决方案的解决方案将无效。

我对此问题的初始解决方案是创建一个Java小程序,当"打印"时,动态加载到页面中。单击按钮。但是,像Chrome这样的浏览器很快就会消除对NPAPI的支持,NPAPI打破了我的Java插件。

我正在研究的当前解决方案是在C#中创建一个用户在其计算机上本地安装的服务,然后当客户点击"打印"按钮,我的服务器直接与该服务通信。这样我可以绕过浏览器限制,并且在客户机器上运行的服务将具有与目标打印机通信的完全访问权限。这种方法的缺点是用户现在必须在他们的机器上安装额外的软件,并且对于他们希望访问我的应用程序并从中打印的每台机器,该机器需要配置适当的端口转发和防火墙设置。我可以为我现在的客户做这项工作,但对于未来的客户来说,这变得很麻烦。此外,我的新方法目前仅支持Windows机器,如果未来客户使用OS X或Linux,我将需要移植该服务。

之前有没有人遇到过这个问题,或者有没有任何想法可以与客户的浏览器进行通信,这是独立于浏览器的?

2 个答案:

答案 0 :(得分:0)

没有可能的解决方案,既支持Chrome,也不需要在机器上安装某些东西;您无法在Chrome中运行与操作系统接口的任意代码。除了本地Web服务器之外,与其他代码交互的唯一方法是扩展中的Native Messaging,但这并不能满足您的跨浏览器要求。

答案 1 :(得分:0)

由于安全性,您无法直接进行通信。我还在c#中开发了1个用于远程打印的应用程序。 有一种方法,如果您的客户端有远程打印机,那么您可以轻松地在服务器上制作小应用程序并与所有远程打印机集成,您可以从服务器执行打印机命令,打印将来自客户端打印机