将网页另存为图像的Java代码

将网页另存为图像的Java代码,java,Java,我使用struts2开发了一个应用程序。我的一个网页有一个div,其中显示了使用googlemapapi创建的世界地图。单击按钮后,我想将此地图另存为服务器位置上的图像。我用机器人类试过了,但不起作用。我的应用程序支持IE8。下面是我写的代码: Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize(); Rectangle rect = new Rectangle(screenDim); Robot rob = new R

我使用struts2开发了一个应用程序。我的一个网页有一个div,其中显示了使用googlemapapi创建的世界地图。单击按钮后,我想将此地图另存为服务器位置上的图像。我用机器人类试过了,但不起作用。我的应用程序支持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图像的黑色页面。

在开发web应用程序时,如果您感兴趣,可以使用javascript

获取屏幕截图并以您可能使用的任何格式保存

检查使用PhantomJS编写的示例:

也可以查看本教程

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


希望这能帮助您……

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

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

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

要执行按钮单击等用户操作,可以使用casper.js

“我使用ROBOT类尝试了此操作,但不起作用。”向我们展示您的尝试。你以为会发生什么?发生了什么事?下面是我使用的代码“Dimension screenDim=Toolkit.getDefaultToolkit().getScreenSize();Rectangle rect=new Rectangle(screenDim);Robot rob=new Robot();BuffereImage img=rob.createScreenCapture(rect);String FileName=“D:\\Maps\\Map.png”;ImageIO.write(img,“png”,new File(FileName));”点击按钮,我试图拍摄桌面的屏幕截图,并将其保存为服务器机器上的图像。这在我的本地主机上运行良好,但当我在服务器上部署它时,它只是给出了一个黑色页面。@user2134620您可以编辑您的问题,并将该注释格式良好地放在其中。对于由此造成的不便,我深表歉意。我现在已经更新了我的帖子。
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.
var page = require('webpage').create();
page.open('http://google.com', function () {
    page.render('google.png');
    phantom.exit();
});