Как сделать скриншот страницы html?

В общем есть сверстанные страницы html с прикрученными стиля css и т.д. шириной не менее 1024px и высотой не менее 2400px. Необходим способ вывести эти страницы в превью на другой странице, блоками шириной 250px с вертикальным скролом. Выводить либо скриншот страницы, либо напрямую транслировать код html прямиком в блок. Весь процесс необходимо автоматизировать, не подойдет в ручную скринить и выкладывать.

Подойдет любой способ, как выполнением javascrpt'a в клиентской части, так и выполнение php-скрипта в серверной части. Подключение сторонней библиотеки тоже подходит. Использование стороннего ресурса вроде www.s-shot.ru или ему подобного, а так же установка приложения/расширения в браузер не подойдут. Подскажите в какую сторону копать? Гугл выдает только библиотеку html2canvas.js!
  • Вопрос задан
  • 8166 просмотров
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
phantom.js на сервере, который будет рендрить ваши странички и генерить превьюшки. html2canvas.js штука забавная, и пожалуй единственная альтернатива (ну еще wkhtmltoimage), но не слишком надежно это дело делать на клиенте.
Ответ написан
Комментировать
OlegTar
@OlegTar
программист .NET, Javascript, Perl
можно сделать с помощью браузера phantomjs

делаете скрипт
var page = require('webpage').create();
page.open('http://www.ya.ru', function() {
  page.render('yaru.png');
  phantom.exit();
});

и вызываете вот так

phantomjs script.js

можно так написать script.js, чтобы он принимал параметры:

var system = require('system');
var args = system.args;
var url = args[0];


и вызывать так:

phantomjs script.js www.yandex.ru

phantomjs.org

либо напрямую транслировать код html прямиком в блок.

iframe
Ответ написан
Можно воспользоваться вот этим: html2canvas
Тут есть примеры
Ответ написан
@Soronorus
программист php, системный администратор
если у вас vds
cutycapt.sourceforge.net
берем это оттуда
ставим на сервак
$file = sprintf('xvfb-run --server-args="-screen 0, 1024x768x24" /patch/CutyCapt --min-width=1280 --url=%s --out=\'%s\'', $url, $tmpfname);
exec($file);
профит
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы