bool mark = true; private void btnOpen_Click(object sender, EventArgs e) { mark = true;
//动态创建WebBrowser控件 WebBrowser webBrowser = new WebBrowser(); webBrowser.Navigate(textBox1.Text); webBrowser.ScrollBarsEnabled = false; //禁用滚动条 webBrowser.ScriptErrorsSuppressed = false; //禁用脚本错误 webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); }
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (!mark) return; //可能页面内含有多次请求,只执行一次 WebBrowser webBrowser = (WebBrowser)sender;
// 确认网页已经加载完毕 while (webBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } // 网页加载完毕才保存 if (webBrowser.ReadyState == WebBrowserReadyState.Complete) { // 获取网页高度和宽度,也可以自己设置 int width = webBrowser.Document.Body.ScrollRectangle.Width < 1024 ? 1024 : webBrowser.Document.Body.ScrollRectangle.Width; int height = webBrowser.Document.Body.ScrollRectangle.Height < 768 ? 768 : webBrowser.Document.Body.ScrollRectangle.Height; // 调节webBrowser的高度和宽度 -- (只用动态创建的WebBrowser才可以修改其大小,不知道为什么) webBrowser.Height = height; webBrowser.Width = width; //滚动整个网页 设置此元素的上边缘或下边缘与此文档窗口对齐为止---这样可以截取网页滚动条中的内容 webBrowser.Document.Body.ScrollIntoView(true); Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片 Rectangle rectangle = new Rectangle(0, 0, width, height); // 绘图区域 webBrowser.DrawToBitmap(bitmap, rectangle); // 截图 // 保存图片 bitmap.Save(@"D:/" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg"); pictureBox1.Image = bitmap as Image; } mark = false; }