全部,
我需要让我们网页的用户能够下载我们放在森林火灾模拟 dot net aspx 网页上的 Bing map 的 jpeg 图像。目前,该页面显示了 Bing map 以及多达 96 个形状,最多可能需要 20 秒才能完全加载。如果有帮助的话,我可以将所有这些形状放在一层上 - 但我不确定是否会这样,我想我会先在这里问。
显然,任何“复杂”的客户端操作(例如 ALT-打印屏幕、从网页打印、mwsnap3 或其他第三方解决方案)都不够,所以我被告知在页面上实现一个按钮,该按钮将当在页面上按下时,下载(或提供)jpeg 图像文档/图像。
我从一个很棒的线程开始:Convert webpage to image from ASP.NET 。 ,这非常接近我想要的,但是页面在 browser.ReadyState != WebBrowserReadyState.Complete 上呈现,该过渡在我的形状加载到 Bing Canvas 上之前触发。我尝试在 DocumentTitleChanged 事件上渲染页面(然后在我的形状完成加载时尝试更改标题),但这也不起作用。
我尝试使用 javascript 强制使用“打印屏幕”字符(请参阅 Is it possible to simulate key press events programmatically? ),但这会转换为逗号(十进制 44),并且无法按预期工作。
我还看到 HTLM5 对此有一些支持 ( http://www.nihilogic.dk/labs/canvas2image ),但是虽然这在 FireFox 中有效,但在 IE 中不起作用,而 IE 是首选浏览器。我还想在移动设备上运行它,该设备可能在一段时间内也不支持 HTML5。
我有几个问题:
1 - 是否有另一种(简单)方法来打印我缺少的网页内容?
2 - 是否有其他一些我可以触发的 WebBrowser 事件会更有意义)?
3 - 如果我使用其他一些控件进行说明,然后将 map 和形状放在该控件上以供后续打印,会有帮助吗?
4 - 这是否违背了网页浏览的原则,是一个坏主意(似乎如果我可以强制“打印屏幕”,那么邪恶的网站就可以强制使用 Ctrl-Alt-Delete 按钮序列)?
谢谢 - 史蒂夫
最佳答案
这可能不是您想要做的方法,因为它需要您以不同的方式重复您已经拥有的许多功能,但唯一真正完整的证明方法是从以下位置获取 map 作为图像bing map 静态图像服务并使用 GDI+ 自己在 map 上绘制,然后直接将该图像提供给用户。解决任何浏览器问题,但根据您的要求需要进行大量工作:
http://rbrundritt.wordpress.com/2009/02/22/drawing-routes-with-the-ve-web-service/
关于javascript - 浏览器上的 Web 控制所需的打印屏幕功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9520398/