WebBrowser截图问题——截取WebBrowser加载的整个网页(可视部分和不可视部分)为图片,具体效果可以参照遨游的页面截图功能。
例如:当前WebBrowser的可视范围为1000X600,但是整个网页加载后的范围为1200X3000,我需要截取这个1200X3000为一个大图。
暂时没有找到一次截取到一个大图的方法(对windows api不熟,只找到截取当前屏幕的,而WebBrowser的隐藏方法DrawToBitmap好像有些问题),个人想到的是每次移动scroll,每次截取一屏,最后把几次截取的图片使用gdi+合并到一个大图上。
如果各位有什么高见请留下的你的意见,谢谢
你可以尝试一下IHtmlElementRenderer接口。
以下代码需要在document complete事件完成后执行:
Size osize = webBrowser1.Size;
webBrowser1.Size = new Size(we.bBrowser1.Document.Body.Width,webBrowser1.Document.Body.Height);//如果有误,请找获取body宽高的属性
Image img = new Bitmap(webBrowser1.Size.Width,webBrowser1.Size.Height);
((Control)webBrowser1).DrawToBitmap(img);
webBrowser1.Size = osize;