如何从URL生成网站的屏幕截图?

时间:2015-11-30 08:07:48

标签: javascript spring

我正在使用Spring MVC开发一个网站。我有一个表格,我问用户他的网站的URL。我需要在输入网址后向他显示网站的屏幕截图。

我应该在后端或前端生成图像吗?

我需要在他的仪表板上向用户显示图像。我无法决定每次都应该生成它还是将它存储在后端。存储在后端的性能会更好,而每次生成它都会向用户显示当前的屏幕截图。

1 个答案:

答案 0 :(得分:2)

看看PhantomJS。您可以通过命令行生成png screenshot。

这是PhantomJS的一个脚本,它带有两个输入参数(url和输出文件):

var page = require('webpage').create();
var args = require('system').args;

var web_url = args[1];
var file_name = args[2];

page.viewportSize = { width: 1200, height: 1602 };
page.clipRect = {top:0, left: 0, width: 1200, height: 1602 };

page.open(web_url, 'GET', function () {

page.evaluate(function() {
    document.body.bgColor = 'white';
});
var ret = page.render(file_name);

var exitcode = 0;
if(ret) exitcode = 1;

phantom.exit(exitcode);
});

然后你可以这样打电话给PhantomJS:

phantomjs scriptfile.js http://www.myweb.com outputfile.png