ITPub博客

首页 > IT职业 > IT生活 > WebBrowser实现网页截图

WebBrowser实现网页截图

IT生活 作者:kikiboy 时间:2021-09-09 09:45:16 0 删除 编辑

引用

using System.Drawing;
using System.Threading;
using System.Windows.Forms;

代码

public class WebsiteToImage
{
        private string m_Url;
        private string m_FileName = string.Empty;

        public WebsiteToImage(string url, string fileName)
        {
            m_Url = url;
            m_FileName = fileName;
        }

        private void _Generate()
        {
            var browser = new WebBrowser {ScrollBarsEnabled = false};
            browser.Navigate(m_Url);
            browser.DocumentCompleted += WebBrowser_DocumentCompleted;

            while (browser.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }

            browser.Dispose();
        }

        private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var browser = (WebBrowser) sender;browser.ClientSize = new Size(browser.Document.Body.ScrollRectangle.Width,browser.Document.Body.ScrollRectangle.Bottom);
            browser.ScrollBarsEnabled = false;

            if (browser.ReadyState == WebBrowserReadyState.Complete)
            {
                 // 获取网页高度和宽度,也可以自己设置
                 int height = browser.Document.Body.ScrollRectangle.Height;
                 int width = browser.Document.Body.ScrollRectangle.Width;

                 // 调节webBrowser的高度和宽度
                 browser.Height = height;
                 browser.Width = width;

                 Bitmap bitmap = new Bitmap(width, height);  // 创建高度和宽度与网页相同的图片
                 Rectangle rectangle = new Rectangle(0, 0, width, height);  // 绘图区域
                 browser.DrawToBitmap(bitmap, rectangle);  // 截图

                 bitmap.Save(m_FileName);  // 保存图片
            }
        }
}

调用

static void Main(string[] args)
{
    var url = "https://product.suning.com/0000000000/10398812002.html";
    var fileName = $@"D:保存网页图片{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.png";
    WebsiteToImage websiteToImage = new WebsiteToImage($"{url}",fileName);
    websiteToImage.Generate();
}

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4588/viewspace-2806926/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-13

  • 博文量
    0
  • 访问量
    465