我想知道 Web 应用程序(托管在远程服务器上)是否可以检测连接到主机(访问 Web 应用程序的主机)的打印机?
另外,是否也可以将打印作业(主要是图像)发送到主机的打印机?
例如,假设您有一个在桌面上运行的本地 WPF 应用程序(Windows Presentation Foundation,C#)。
要打印图像:
- 在 WPF 应用程序上选择一个图像(从本地硬盘上的目录加载)
- 单击“打印按钮”
这将运行这行 C# 代码:
e.Graphics.DrawImage(image, x-coordinate, y-coordinate, imageWidth, imageHeight);
它会发送一个打印作业image
到本地计算机的默认打印机。
现在,您拥有的不再是 WPF 应用程序,而是 Web 应用程序。用户将:
- 输入 Web 应用程序的 URL
- Web 应用程序将加载类似于 WPF 应用程序的页面
- Web 应用程序将显示从数据库加载的图像。
- 用户选择他想要打印的图像
- 用户单击“打印图像”
但是,为了打印图像,我想 Web 应用程序需要识别用户本地计算机上拥有的打印机,并能够与打印机进行通信。
当然,Web 应用程序不需要位于 .NET 中。我只是使用 WPF/C# 作为示例。
坦率地说,答案是否定的。服务器端代码无法以这种方式与客户端资源通信。
一个可能的解决方案可能是将一些客户端组件嵌入到您的网络应用程序中,该组件可以完成您的任务
想要,例如 Java 小程序或 Silverlight 项目。我不知道他们是否能够打印,但这可能是一个值得研究的选择。
但是,我建议处理它的最佳方法(如果您的用例允许)是提供能够通过本机浏览器方法打印的东西。您可以使用专门用于打印的样式表media="print"
属性在你的link
元素。如果这仍然太不精确(您无法控制浏览器的纸张大小、页边距、页眉/页脚等),也许另一个选择是提供特定于打印的文件,例如 PDF。但最终,您所要求的是不可能的,而是寻找另一种方法来满足您的要求的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)