我想知道Web应用程序(托管在远程服务器上)是否能够检测连接到主机(访问Web应用程序的主机)的打印机?
此外,是否也可以将打印作业(主要是图像)发送到主机的打印机?
例如,假设您有一个本地WPF应用程序(Windows Presentation Foundation,C#)正在桌面上运行。
要打印图像:
1.选择WPF应用程序上的图像(从本地硬盘上的目录加载)
1.点击“打印按钮”
这将运行下面这行C#代码:
e.Graphics.DrawImage(image, x-coordinate, y-coordinate, imageWidth, imageHeight);
它会将image
的打印作业发送到本地计算机的默认打印机。
因此,现在您拥有的不是WPF应用程序,而是Web应用程序。用户将:
1.键入Web应用程序的URL
- Web-App将加载一个类似于WPF应用程序的页面
- Web-App将显示从数据库加载的图像。
1.用户选择要打印的图像
1.用户点击“打印图像”
然而,为了打印图像,我想Web应用程序需要识别用户在其本地计算机上的打印机,并能够与打印机通信。
当然,Web应用程序不需要在. NET中。我只是使用WPF/C#作为示例。
2条答案
按热度按时间p4tfgftt1#
坦率地说,答案是否定的。服务器端代码不能以这种方式与客户端资源进行通信。
一个可能的解决方案是将一些客户端组件嵌入到你的web应用程序中,比如Java小程序或Silverlight项目。我不知道它们是否能够打印,但这可能是一个值得研究的选择。
不过,我会建议最好的处理方法(如果您的用例允许的话),就是提供一些能够通过本地浏览器方法打印的东西。您可以提供一个样式表,该样式表专门用于使用
link
元素上的media="print"
属性打印。如果这仍然不够精确(您无法控制浏览器的纸张大小、页边距、页眉/页脚等),也许另一个选择是提供特定于打印的文件,如PDF。你所要求的是不可能的,这是一个寻找另一种方法来满足你的要求的问题。k5ifujac2#
我也有类似的问题,我还没有编程,但是我发现惠普打印机可以通过惠普网络接收打印作业。如果你有WiFi功能,应该有办法通过电子邮件将打印作业发送到打印机。我还在研究这个问题。但是,我有一个朋友用AWS做了类似的事情。
有一段时间了,但我已经了解到惠普打印机可以启用WiFi。这意味着,他们可以得到一个电子邮件地址,并可以打印到,在该地址,通过互联网,如果他们连接到一个WiFi网络连接到互联网。电子邮件通过互联网直接到打印机,在那里,然后打印。所以,你可以电子邮件打印文件。