使用wcf(不使用url)打印当前网页屏幕的屏幕

时间:2015-10-12 12:37:25

标签: c# jquery asp.net

我想使用WCF服务拍摄当前屏幕(当前屏幕的打印屏幕作为图像)的屏幕截图。 我用谷歌搜索代码,我找到了一些代码(如memoryGraphics.CopyFromScreen),这在我的本地机器上工作得很好。但是当我在IIS服务器上托管时,它会给我一个错误,即服务器上没有屏幕。

有没有办法将当前网页的截图作为图像

注意: 我无法使用http://html2canvas.hertzen.com/或任何其他接受URL的工具,因为我的网页网址相同...数据是来自jQuery的渲染。

因此,如果没有传递网址,我想要当前网页的屏幕截图。

1 个答案:

答案 0 :(得分:0)

为了获取桌面的屏幕截图,获取此屏幕截图的可执行文件必须在目标设备上运行。

在您的测试中,可执行文件(WCF服务)正在Web服务器上运行,并在您执行时尝试获取Web服务器的屏幕截图,而不是执行WCF请求的客户端。

你有几个选择(我现在可以想到):

1)使用可安装在客户端上的应用程序来执行屏幕截图,并将屏幕截图数据发送到WCF服务。这可以是带安装程序的直接EXE。为了方便用户体验,可以使用ClickOnce部署(http://www.codeproject.com/Articles/17003/ClickOnce-Quick-steps-to-Deploy-Install-and-Update

2)使用为目标浏览器设计的某种插件。适用相同的规则,它在客户端上运行,截取屏幕截图并将屏幕截图发送到WCF服务。可能需要很多工作才能与许多浏览器一起工作。

3)如果您只想从您拥有的应用程序中截取网页的屏幕截图并修改其来源,那么您可以编写一些基本上将文档DOM的当前状态发送到WCF服务的javascript。然后,该服务可以在一种虚拟浏览器上呈现DOM。例如PhantomJS(http://phantomjs.org/)或Awesomium(http://www.awesomium.com/)。然后保存渲染的输出。