zoukankan      html  css  js  c++  java
  • asp.net调用客户端WebBrowser 进行网站地址截屏

    在asp.net网站中,如果要实现,在文本框中输入一个URL地址,就把该网页的页面整屏截下来,这段时间一直在研究这一块,在网上查了好多资料。自己又整合了一下。

    其实也不是想象中的那么难。主要是通过调用System.Windows.Forms中的WebBrowser就可以了。具体代码试下如下。

    命名空间引用

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

    System.Windows.Forms此引用需要通过右键该项目添加引用在.net下找到System.Windows.Forms引用就可以了

    cs代码实现

        private WebBrowser _webBrowser1;
            protected void Page_Load(object sender, EventArgs e)
            {
                _webBrowser1 = new WebBrowser();//实例化一个WebBrowser
                Image();//调用方法
            }
          //网址处理 

       public void Image()
            {
                _webBrowser1 = new WebBrowser();
                string url = Request["url"];
                if (string.IsNullOrEmpty(url))
                {
                    url = "http://www.xzhichang.com/";
                }
                _webBrowser1.ScrollBarsEnabled = false; //不显示滚动条
                try
                {
                    this._webBrowser1.Navigate(url);
                }
                catch (Exception ex)
                {
                    // ignore error  //异常信息
                }
                _webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Completed);

                while (_webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                {
                    System.Windows.Forms.Application.DoEvents(); //避免假死,若去掉则可能无法触发 DocumentCompleted 事件。
                }
            }

      //截屏以及保存操作

          public void Completed(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                //设置浏览器宽度、高度为文档宽度、高度,以便截取整个网页。
                _webBrowser1.Width = 1024;
                _webBrowser1.Height = 750;
                using (Bitmap bmp = new Bitmap(_webBrowser1.Width, _webBrowser1.Height))
                {
                    _webBrowser1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
                    string image = DateTime.Now.ToString("yyMMddhhmmssfff") + ".png";
                    bmp.Save("E:\tupian\" + image, ImageFormat.Png);//如果需要高清图片需自己处理
                }
            }

       此方法不能截取flash页面。截的图片只是空白的。

  • 相关阅读:
    基于Kubernates微服务案例
    领导人怎样带领好团队
    前端性能核对表Checklist-2018
    国际巨头互联网公司一些运营与管理思路
    IT研发工程师职业规划
    高性能风控数据平台设计
    基础设施DevOps演进之路
    2017-2018年Scrum状态调查报告
    大型互联网系统的监控流水线
    小程序【情书与歌】一小时过审经验小谈
  • 原文地址:https://www.cnblogs.com/LMJBlogs/p/4075608.html
Copyright © 2011-2022 走看看