• 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页面。截的图片只是空白的。

  • 相关阅读:
    java 读写word java 动态写入 模板文件
    Java代码获取NTP服务器时间
    Web环境使用相对路径发布Webservice
    eclipse 标记任务
    抽象工厂模式
    CentOS 7.0 使用yum 安装 Mariadb
    Centos 7 JDK 安装(默认之前没有安装过)
    深入浅出《设计模式》之外观模式(C++)
    深入浅出《设计模式》之工厂模式(C++)
    深入浅出《设计模式》之简单工厂模式(C++)
  • 原文地址:https://www.cnblogs.com/LMJBlogs/p/4075608.html
Copyright © 2020-2023  润新知