浏览器上的web控件所需的打印屏幕功能

Printscreen function desired from web control on browser

本文关键字:打印 屏幕 功能 控件 web 浏览器      更新时间:2023-09-26

全部,

我有一个要求,让我们网页的用户能够下载我们在森林火灾模拟dot-net.aspx网页上放置的必应地图的jpeg图像。该页面目前显示了一个Bing地图和多达96个形状的多个层,可能需要20秒才能完全加载。如果有帮助的话,我可以把所有这些形状都放在一层上——但我不确定会不会,我想我会先问这里。

显然,任何"复杂"的客户端操作(如ALT打印屏幕、从网页打印、mwsnap3或其他第三方解决方案)都是不够的,所以我被告知要在页面上实现一个按钮,当按下按钮时,该按钮将下载(或提供)jpeg图像文档/图像。

我从一个很棒的线程开始,将网页转换为ASP.NET中的图像。这非常接近我想要的,但页面会在浏览器上呈现。就绪状态!=WebBrowserReadyState。完成转换,在我的形状加载到Bing画布上之前启动。我试图在DocumentTitleChanged事件上呈现页面(然后在我的shaped完成加载后尝试更改标题),但这也不起作用。

我试图用javascript强制使用"打印屏幕"字符(请参阅是否可以通过编程模拟按键事件?),但这被转换为逗号(十进制44),无法按预期工作。

我也看到HTLM5对此有一些支持(http://www.nihilogic.dk/labs/canvas2image),但这在FireFox中有效,但在IE中无效,IE是首选浏览器。我还想在移动设备上运行这个,因为移动设备可能在一段时间内也不支持HTML5。

我有几个问题:

1-有没有其他(简单)的方法来打印我丢失的网页内容?

2-是否有其他WebBrowser事件可以触发,这将更有意义)?

3-如果我用其他控件说明,然后把地图和形状放在这个控件上进行后续打印,会有帮助吗?

4-这是否违背了网络浏览的初衷,只是一个坏主意(似乎如果我可以强制使用"打印屏幕",那么邪恶的网站可以强制使用Ctrl-Alt-Delete按钮序列)?

谢谢-Steve

这可能不是你想做的方法,因为它需要你以不同的方式重复你已经拥有的许多功能,但唯一真正充分证明的方法是从bing-maps静态图像服务中获得地图作为图像,并使用GDI+自己绘制地图,然后直接将该图像提供给用户。绕过任何浏览器问题,但根据您的要求需要做相当多的工作:

http://rbrundritt.wordpress.com/2009/02/22/drawing-routes-with-the-ve-web-service/