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

  • 相关阅读:
    MySQL Stack Buffer Overflow Linux x86 32bits
    WordPress Browser Rejector 插件"wppath"远程文件包含漏洞
    JBoss Enterprise Application Platform安全绕过漏洞
    启动NDuiker项目
    java基础>Java常用类库 小强斋
    MyEclipse6.5安装SVN插件的三种方法 小强斋
    jsp>Jsp语法 小强斋
    java基础>Java常用类库 小强斋
    jsp>Jsp语法 小强斋
    java基础>正则表达式 小强斋
  • 原文地址:https://www.cnblogs.com/LMJBlogs/p/4075608.html
Copyright © 2011-2022 走看看