首页 文章

Web应用程序可以检测本地打印机

提问于
浏览
3

我想知道Web应用程序(托管在远程服务器上)是否有可能检测到连接到主机的打印机(访问Web应用程序的打印机)?

此外,是否也可以将打印作业(主要是图像)发送到主机的打印机?

例如,假设您在桌面上运行了本地WPF应用程序(Windows Presentation Foundation,C#) .

要打印图像:

  • 在WPF应用程序上选择一个图像(从本地硬盘上的目录加载)

  • 点击"Print Button"

这将运行这一行C#代码:

e.Graphics.DrawImage(image, x-coordinate, y-coordinate, imageWidth, imageHeight);

它会将 image 的打印作业发送到本地计算机的默认打印机 .

所以现在,您有一个Web应用程序而不是WPF应用程序 . 用户将:

  • 输入Web应用程序的URL

  • Web-App将加载类似于WPF应用程序的页面

  • Web-App将显示从数据库加载的图像 .

  • 用户选择要打印的图像

  • 用户点击"Print Image"

但是,为了打印图像,我认为Web-App需要识别用户在本地计算机上使用的打印机,并能够与打印机通信 .

当然,Web-App不需要在.NET中 . 我只是以WPF / C#为例 .

2 回答

  • 1

    坦白说,答案是否定的 . 服务器端代码无法以这种方式与客户端资源通信 .

    一种可能的解决方案可能是将一些客户端组件嵌入到您想要的Web应用程序中,例如Java applet或Silverlight项 . 我不知道他们是否能够打印,但它可能是一个值得研究的选择 .

    但是,我建议处理它的最佳方法(如果你的用例允许),是提供能够通过本机浏览器方法打印的东西 . 您可以使用 link 元素上的 media="print" 属性提供适用于打印的样式表 . 如果这仍然太不精确(您的纸张大小,页边距,页眉/页脚等),也许另一个选项可能是提供特定于打印的文件,如PDF . 但最终,你所要求的是不可能的,而是找到另一种方式来满足你的要求 .

  • 1

    我有一个类似的问题,我没有编程,但是,我发现HP打印机可以通过HP网络接收打印作业 . 如果您启用了WiFi,则应该有一种方法将打印作业通过电子邮件发送到打印机 . 我还在研究这个 . 但是,我有一个朋友使用AWS做了类似的事情 .

相关问题