【问题标题】:How to generate screenshot of a website from a URL? [duplicate]如何从 URL 生成网站的屏幕截图? [复制]
【发布时间】:2016-03-03 19:34:35
【问题描述】:

我正在使用 Spring MVC 开发一个网站。我有一个表格,我要求用户提供他的网站 URL。他输入网址后,我需要给他看网站的屏幕截图。

我应该在后端还是前端生成图像?

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

【问题讨论】:

  • 你使用什么后端语言?
  • 在后端这样做有什么好处? (除非您需要存储图像以供以后使用)
  • iframe 中显示如何?
  • @Cerbrus 我正在使用基于 Java 的 Spring Framework

标签: javascript spring


【解决方案1】:

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

这是一个用于 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-31
    • 2023-03-17
    • 1970-01-01
    • 2010-11-14
    • 2021-04-16
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多