Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Скрин всей страницы из объекта webbrowser


Автор: ProgerIv 3.5.2009, 04:57
Как можно получить скриншот всей страницы, загруженной в объект webbrowser?
Т.е. на форме у меня есть экземпляр webbrowser, туда загружается страница, нужно получить скриншот всей этой страницы (не только видимой части, т.к. не вся страница может поместиться в видимую область). Важно, не перезагружать webbrowser и не создавать вспомогательных экземпляров webbrowser.
Что можно сделать?

Автор: ProgerIv 5.5.2009, 03:53
Друзья, вопрос актуален!

Автор: -Mikle- 5.5.2009, 08:38
Не пробовал и не экспериментировал, но печать выполняется на DC принтера однозначно. Передав свой DC в метод печати, можно произвести печать в Bitmap. Может быть тебе удасться подпихнуть свой hDC при вызове метода Print? То есть что-нить где-нить перехватить и дать свой DC в который потом уже пойдут команды печати.

DeviceContext (DC) Bitmap'а можно получить так:

Код

    Bitmap bitmap = new Bitmap(width, height);
    Graphics g = Graphics.FromImage(bitmap);
    IntPtr hDC = g.GetHdc();
    // выполняем печать в DC
    g.ReleaseHdc();

Автор: ProgerIv 5.5.2009, 17:43
Мне не надо выводить на принтер, мне надо получить bitmap страницы, загруженной в экземпляр компонента webbrowser, но при этом страница не должна перезагружаться и нельзя использовать дополнительный экземпляр компонента webbrowser.

Автор: -Mikle- 5.5.2009, 20:59
Ну так я и говорю про возможную реализацию этого. Если найти способ подставить свой DC при печати, то печать всей(!) страницы будет идти не на принтер, а в Bitmap.

Автор: ProgerIv 6.5.2009, 11:00
Теперь понятно. Спасибо. Я попробую.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)