Russian Qt Forum

Qt => Qt Script, QtWebKit => Тема начата: Alex Custov от Февраль 02, 2017, 12:32



Название: Скриншот большой веб страницы
Отправлено: Alex Custov от Февраль 02, 2017, 12:32
Привет. Есть проблема: загружена в QWebView большая веб-страница. Нужно сделать скриншот. Сразу оговорюсь, что методы типа QWebFrame::render() не сработают, потому что страница очень большая. Её contentsSize() в пикселях == 1024x125000 (может быть и больше). Создать такой QImage просто нельзя. Было бы хорошо, если было бы можно рендерить её кусками, но опять же в QWebFrame нет такого API.

Какие есть мысли как её отрендерить ?


Название: Re: Скриншот большой веб страницы
Отправлено: gil9red от Февраль 02, 2017, 12:51
Есть дикий вариант:
1. скриншотить текущую видимую область
2. вертикальный ползунок сдвигать на n-пикселей вниз
3. шаг 1

результат будет, но чтобы картинка была правильной придется по геммороиться :)


Название: Re: Скриншот большой веб страницы
Отправлено: Alex Custov от Февраль 02, 2017, 13:00
Хм, кажется я понял как этого достичь: придётся рендерить отдельные куски с помощью QWebFrame::render(), там есть аргумент clip. Думаю придётся рендерить несколькими частями и складывать в отдельные файлы. Ну хоть так.

Вариант со скроллом тоже рассматривал, но как самый последний и грязный :)