0

我有一个使用 struts2 开发的应用程序。我的一个网页有一个 div,其中显示了使用 Google 地图 API 创建的世界地图。单击按钮后,我想将此地图保存为服务器位置上的图像。我尝试使用 ROBOT 类进行此操作,但这不起作用。我的应用程序支持 IE8。下面是我写的代码:

Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rect = new Rectangle(screenDim);
Robot rob = new Robot();
BufferedImage img = rob.createScreenCapture(rect);
String FileName="D:\\SP_Maps\\Map.png";
ImageIO.write(img, "png", new File(FileName));

基本上,我尝试在单击按钮时截取页面的屏幕截图并将其保存为图像。这在我的本地主机上运行良好,但是,当我在我的服务器上部署它并尝试获取屏幕截图时,我只是得到一个保存为 png 图像的黑页。

4

2 回答 2

0

在开发 Web 应用程序时,如果您有兴趣,可以使用 javascript。

要获取屏幕截图并以任何格式保存,您可以使用PhantomJS

PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast
and native support for various web standards: DOM handling, CSS selector, 
JSON, Canvas, and SVG.

检查那些用 PhantomJS 编写的示例:

https://github.com/ariya/phantomjs/wiki/Examples

另请查看本教程使用 PhantomJS 截取网站截图

本教程是关于拍摄网络照片并将其保存为 JPEG、PNG、PDF 等格式

希望这可以帮助你...

于 2013-05-07T11:01:35.227 回答
0

你能清楚地解释你的用例吗?如果我理解正确,您有一个 Web 应用程序,它具有在用户操作时截屏的功能?理想情况下,JavaRobot实用程序应该用于对 Java 应用程序进行自动化测试。根据文档

Robot 的主要目的是促进 Java 平台实现的自动化测试。

也许你可以尝试使用 phantomjs。例子

var page = require('webpage').create();
page.open('http://google.com', function () {
    page.render('google.png');
    phantom.exit();
});

https://github.com/ariya/phantomjs/wiki/Quick-Start

要执行按钮点击等用户操作,您可以使用 casper.js http://casperjs.org/quickstart.html

于 2013-05-07T11:02:02.630 回答