2

你好,

编辑:我想通过不使用任何第三方软件来实现它。我的应用程序是 SAP 产品,我不能去找每个客户并在他的系统中安装该软件。
我有以下场景..

    我的网站(当然,它是一个业务应用程序)中有一个名为"Save as image".so 的按钮,因此每当用户按下该按钮时,必须将页面内容转换为图像文件并保存在他的系统中。
    我们可以通过javascript或jquery来实现吗?
    如果我们不能在 javascript 中完成,我们可以在 SAP BSP 中完成吗,因为我的应用程序是在 SAP BSP 中开发的?

        我已经在这个网站上搜索过,找到了一个只适用于 Firefox 扩展的解决方案。但我需要一个跨浏览器解决方案,它必须适用于 IE、Chromer 等。

4

3 回答 3

5

这样做的方法是在隐藏<canvas>元素中呈现 HTML 页面,然后将画布内容保存为图像。

这是可能的,但您不会有完美的渲染输出或适用于旧版浏览器的解决方案。

请参见

https://stackoverflow.com/a/12660867/315168

了解更多信息。

或者,将无状态页面 URL 提交到无头浏览器呈现页面并使用 Selenium 自动化截取屏幕截图的服务器端。如果该页面是公开的,那么也存在一些 Web 服务。

于 2012-10-03T06:44:53.043 回答
1

一种简单但部分的 IE 解决方案,它使用 ActiveX,而不是跨浏览器,而通用的解决方案有点麻烦

IE解决方案

function printScreen(){
  var oWordBasic;
  if (window.ActiveXObject){
    oWordBasic = new ActiveXObject("Word.Basic");
    oWordBasic.SendKeys('%{1068}'); 
    oWordBasic.SendKeys('%{PRTSC}'); //or if the above doesnt work..
    //save or transfer the clipboard contensts
  }
}

一般解决方案:

使用像 Gadwin PrintScreen http://www.gadwin.com/printscreen/这样的屏幕捕获实用程序,它适用于 Windows,但我确信 Linux 和 Mac 也有类似的。您可以定义一个热键,并让它使用自动编号将图像保存到固定位置。该程序不需要安装,它是可移植的,因此可以驻留在网络共享上。

于 2012-10-03T07:26:18.647 回答
0

您也可以尝试创建包含在站点中的 java applet 或 jar,以捕获屏幕或浏览器的某些部分。我看到了基于 jar 加载文件的实时屏幕共享机制,但我没有看到代码。

这是一些用于将 java html 转换为图像的库 http://code.google.com/p/java-html2image/

heres simmilar topic 如何使用 java 捕获其他应用程序的选定屏幕?

于 2012-10-03T06:53:15.457 回答