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

问题描述 投票:3回答:2

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

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

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

要打印图像:

  1. 在WPF应用程序上选择一个映像(从本地硬盘上的目录加载)
  2. 单击“打印按钮”

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

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

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

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

  1. 键入Web应用程序的URL
  2. Web应用程序将加载类似于WPF应用程序的页面
  3. Web应用程序将显示从数据库加载的图像。
  4. 用户选择要打印的图像
  5. 用户点击“打印图像”

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

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

web-services web-applications printing
2个回答
1
投票

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

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

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.