如果我有一台打印机直接连接到一台电脑(带有打印机的信息亭),我将如何创建网页(.net Web 应用程序)在没有用户干预的情况下将 jpg 打印到信息亭打印机的能力,除了点击页面上的按钮?
4 回答
这已经被问过好几次了,结果总是你不能通过普通的网络技术(HTML + Javascript)来做到这一点。您能做的最好的事情就是打开打印对话框,这是设计使然。由于您控制了信息亭,您可以做的是创建某种浏览器扩展(如 Flash 对象、.Net 托管控件、Java 小程序等)并将其提供给您的页面,以便它为您处理打印部分。
我以两种不同的方式解决了这个问题:
- 使用 ActiveX
- 创建像 myprint://PRINT_DATA 这样的协议
如果您创建了一个托管 Web 浏览器控件的应用程序(而不是直接使用 Web 浏览器),您可以更直接地控制打印过程。
(假设可以使用 Windows + IE)
以下是一些可能有帮助的示例文章:
以及具有 Print 方法的 WebBrowser 类的不断变化的 MSDN 文档。
来自 print 方法的注释:“您可以使用此方法实现类似于 Internet Explorer 中的打印按钮。此方法打印当前文档而无需进一步的用户输入。”
其他评论涵盖了您要在网络浏览器的计算机上打印的场景。
However, if you want to print to a printer connected to the web server (ie, the machine running the web application), you can use regular C# printing with the following twist: http://support.microsoft.com/kb/184291/
In my context, my kiosk runs both the web server and the web browser, so that solved my problem.