Задать вопрос
@trubachw
начинающий веб разработчик

Нужна помощь с сайтом, а именно скрин странички на стороне сервера. Как это сделать?

Всем привет, я только начинаю изучать веб разработку и у меня появился вопрос в реализации одной функции.
У меня стоит задача делать скрин определенной области сайта(в будущем это будет скрин определенной области карты выбранной пользователем) на серверной стороне. Чтобы после нажатия на кнопку сайт делал скрин на своей страничке определенной области и открывал его на другой стр(в дальнейшем это будет редактирование данного скриншота). Пожалуйста подскажите как можно реализовать скриншот выбранной области?
  • Вопрос задан
  • 301 просмотр
Подписаться 4 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 5
@mletov
На стороне сервера - никак. Скрин все равно делается на клиенте, а потом уже отправляется на сервер, если нужно его куда-то сохранить.

А на клиенте, например:
https://www.geeksforgeeks.org/how-to-take-screensh...

Ну или Google->"screenshot page javascript"
Ответ написан
Stalker_RED
@Stalker_RED
Проще всего из браузера. В хроме открыть консоль (f12), нажать там ctrl+shift+p, напишите там full size screenshot.

если нужно именно а стороне сервера, то смотрите в сторону headless браузеров.
Ответ написан
Комментировать
larisamoroz
@larisamoroz
Курю маны, втыкаю в код, ваяю, починяю.
можно всё на PHP сделать
cutycapt и xvfb-run тебе в помощь
но надо иметь доступ к установке ПО на сервере

у меня вот такая команда на скриншотах работает
exec('xvfb-run -a --server-args="-screen 0, 520x520x24" cutycapt --url=\'' . $pageUrl . '\' --min-width=520 --min-height=340 --out=\'' . $screenshotPath . '\' 2>&1', $execoutput);
Ответ написан
Комментировать
@tempick
На стороне сервера - можно использовать Node.js+puppeteer.
https://pptr.dev/#?product=Puppeteer&version=v5.5....
Первый пример кода - сохранение скриншота сайта в jpg-файл

С выделенной областью будет чуть посложнее, но вполне реализуемо.
Ответ написан
Комментировать
XOKyUCT
@XOKyUCT
Сисадмин и вебмастер
Успешно использую browsershot для такой задачи
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы