[英]Java Code to save Web page as image
我有一个使用struts2开发的应用程序。 我的网页之一有一个div,其中显示了使用Google Map 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图像的黑页。
在开发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/示例
另请查看本教程使用PhantomJS拍摄网站截图
本教程是关于拍摄网络快照并将其另存为JPEG,PNG,PDF等的。
希望这对您有帮助...
您可以清楚地说明用例吗? 如果我正确理解您的Web应用程序,该应用程序具有可以根据用户操作进行屏幕截图的功能? 理想情况下,应使用Java Robot
实用程序对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/快速入门
要执行诸如按钮单击之类的用户操作,您可以使用casper.js http://casperjs.org/quickstart.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.