我想知道Web应用程序(托管在远程服务器上)是否有可能检测到连接到主机的打印机(访问Web应用程序的打印机)?
此外,是否也可以将打印作业(主要是图像)发送到主机的打印机?
例如,假设您在桌面上运行了本地WPF应用程序(Windows Presentation Foundation,C#)。
要打印图像:
这将运行这一行C#代码:
e.Graphics.DrawImage(image, x-coordinate, y-coordinate, imageWidth, imageHeight);
它会将image
的打印作业发送到本地计算机的默认打印机。
所以现在,您有一个Web应用程序而不是WPF应用程序。用户将:
但是,为了打印图像,我认为Web-App需要识别用户在本地计算机上使用的打印机,并能够与打印机通信。
当然,Web-App不需要在.NET中。我只是以WPF / C#为例。
坦白说,答案是否定的。服务器端代码无法以这种方式与客户端资源通信。
一种可能的解决方案可能是将一些客户端组件嵌入到您想要的Web应用程序中,例如Java applet或Silverlight项。我不知道他们是否能够打印,但它可能是一个值得研究的选择。
但是,我建议处理它的最佳方法(如果你的用例允许),是提供能够通过本机浏览器方法打印的东西。您可以使用media="print"
元素上的link
属性提供适用于打印的样式表。如果这仍然太不精确(你无法控制浏览器的纸张大小,页边距,页眉/页脚等),也许另一种选择可能是提供特定于打印的文件,如PDF。但最终,你所要求的是不可能的,而是找到另一种方式来满足你的要求。
我有一个类似的问题,我没有编程,但是,我发现HP打印机可以通过HP网络接收打印作业。如果您启用了WiFi,则应该有一种方法将打印作业通过电子邮件发送到打印机。我还在研究这个。但是,我有一位朋友使用AWS做过类似的事情。