admin管理员组文章数量:1516870
IE网页截图技术笔记
网页截图技术似乎并不是很复杂,网上有很多实例,但是真的想搞清楚的话,还是有很多细节需要注意的。下面是我个人一些经验总结。
- 有3个技术方案,可以实现IE截图
方案2: Rectangle body = webBrowser1.Document.Body.ScrollRectangle;body.Height = height;body.Width = width; <span style="font-family: Arial, Helvetica, sans-serif;">IntPtr hmemdc = CreateCompatibleDC(hscrdc);</span> SelectObject(hmemdc, hbitmap);IViewObject ivo = webBrowser1.Document.DomDocument as IViewObject;ivo.Draw(1, -1, IntPtr.Zero, IntPtr.Zero,hscrdc, hmemdc, ref body,ref body, IntPtr.Zero, 0); 这个方案的优点是可以实现缩放,但是效果很不好,截图比较有点模糊;放大会崩溃,这个问题似乎并没有好解决方案;有些第三方ActiveX没有实现IViewObject接口,就不能显示在截图里面,如银行密码输入控件等。
方案3: public static Bitmap GetWindow(IntPtr hWnd,int width,int height){IntPtr hscrdc = GetWindowDC(hWnd);IntPtr hbitmap = CreateCompatibleBitmap(hscrdc, width, height);IntPtr hmemdc = CreateCompatibleDC(hscrdc);SelectObject(hmemdc, hbitmap);bool re= PrintWindow(hWnd, hmemdc, 0);Bitmap bmp = null;if(re){bmp = Bitmap.FromHbitmap(hbitmap); }DeleteObject(hbitmap);DeleteDC(hmemdc); ReleaseDC(hWnd, hscrdc);return bmp;} 这个方案的唯一缺点是不能对特定元素截图,虽然不能直接缩放,但是对得到截图后再进行缩放也是很容易的。
- 不管哪种技术方案,都只能对网页可见区域进行截图,不是完整的网页
- 使用PrintWindow是最稳定,有效的方法
以上就是我的一些经验总结了,如有问题欢迎指正!
本文标签: IE网页截图技术笔记
版权声明:本文标题:IE网页截图技术笔记 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1687509099a110350.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论