在客户端捕获网站的屏幕截图(Javascript或flash)

时间:2009-11-25 04:53:52

标签: asp.net google-maps client-side printing-web-page

是否有一些方法可以使用javascript或嵌入式Flash对象等从浏览器发出屏幕截图(仅限浏览器窗口内容),以便保存或打印页面内容的完整质量图像或者另一种方法。

我有一个网络应用程序(asp.net 3.5),谷歌地图和其他ajax操作客户端像自定义磁贴服务器。我一直在尝试为用户实现一种打印网页质量很好的方法。

我使用了基本的Window.Print(),但在IE和FF中,谷歌地图中的许多文物和弹出的泡泡等一些项目都没有打印。我已经尝试了通过cutepdf保存pdf(只是为了在这里发布一个例子)和质量通过window.print()也很低。

例如,使用FireShot插件的屏幕截图非常完美,也是我希望客户拥有的屏幕截图。但是这只是FF,我不能要求客户在他们的浏览器上安装插件/ activex控件。

使用以下网址查看此下载example zip file(4mb)

  1. 使用FireShot拍摄的屏幕示例 (我想要实现的例子 通过一个html / JS按钮 页)
  2. Firefox Window.Print()结果 (cutepdf用于保存为pdf)
  3. IE Window.Print()结果(cutepdf 用于保存为pdf)
  4. 请注意,即使打开,小气泡也不会打印出来。

    目前,我已在我的网站上添加了全屏功能,并引导用户截取屏幕截图或调用window.print()函数。

    我仍在寻找打印/捕获页面的方法。

    我可以在页面中包含任何flash / activex控件,并通过它们提供高质量的打印机制吗?

    再次感谢所有帮助,但我还需要更多帮助。 :)

    提前谢谢。

    http://rapidshare.com/files/311849636/Print_examples.zip.html
    

5 个答案:

答案 0 :(得分:2)

你只会发现像Snagit这样的简单应用程序才能完成这项工作。 Building a SnagIt Screen Capture Plugin

答案 1 :(得分:1)

在富Web应用程序中可靠地在屏幕上提供高质量打印版本的唯一方法是使用客户端(例如JavaScript)向服务器发送有关当前状态的精确信息(气泡在哪里)等等)并使用它来生成模仿定位的图像。将该图像转换为PDF或有什么用户,然后发送到客户端进行下载。

答案 2 :(得分:1)

Google还有Static Maps API可能会给您带来好结果。我曾经自己调查过一次,但由于(当时)在折线上有多少点可以支持,所以只是没有用它。

答案 3 :(得分:0)

我不认为这是可能的。能够通过脚本捕获用户的屏幕(想象捕获屏幕信息的坏网站)将是一个相当大的安全风险。

答案 4 :(得分:0)

不,没有,尽管有时会报告错误等等。

通过创建页面的单独版本,您可能会获得最佳结果,因为PDF已生成该页面。一切都没有快速解决方案,但你会获得出色的打印质量和对一切的完全控制。地图部分可能有点棘手,因为你需要以某种方式将地图作为服务器上的位图,如果它不在客户端的闪存中,我不知道你是怎么做的。