请问网页如何截图?
搜索了很多相关文章看,基本上都在说用WebBrowser组件,但关键WebBrowser内的一个方法DrawToBitmap,我添加了这个组件后竟然找不到。是不是和IE版本有关系?还是vs.net版本?我是IE6,VS.NET2003。。
因为我要做的是在服务器端生成一个文章内容的缩略图(和兴奋校园网差不多),直接绘制发现HTML代码无法应用。所以我想大概需要浏览器来解析这些HTML代码,然后截图。不知道有没有更好的办法。
这个问题困扰我两天了,还希望知道的朋友指点一二。。感激不尽。。
------解决方案-------------------- 
代码
var mainwin = document.getElementById("main-window");
if (!mainwin.getAttribute("xmlns:html"))
   mainwin.setAttribute("xmlns:html", "http://www.w3.org/1999/xhtml");
var content = window.content
var desth = content.innerHeight + content.scrollMaxY;
var destw = content.innerWidth + content.scrollMaxX;
// Unfortunately there is a limit:
if (desth > 16384) desth = 16384;
var canvas = document.createElementNS("http://www.w3.org/1999/xhtml", "html:canvas");
var ctx = canvas.getContext("2d");
canvas.height = desth;
canvas.width = destw;
ctx.drawWindow(content, 0, 0, destw, desth, "rgb(0,0,0)");
internalSave(canvas.toDataURL("image/jpeg", "quality=80"),
            null,
            "saved_page.jpg",
            null,
            "image/jpeg",
            true,
            null,
            null,
            null,
            false);
如果想保存成PNG
最后一个函数换成
代码
internalSave(canvas.toDataURL(),
             null,
             "saved_page.png",
             null,
             "image/png",
             true,
             null,
             null,
             null,
             false);
代码来源:http://board.mozest.com/thread-23644-1-1
------解决方案-------------------- 你也可以看看这个
http://download.csdn.net/source/1180046
------解决方案-------------------- 
 private WebBrowser _webBrowser;  
   protected void Page_Load(object sender, EventArgs e)
   {
       string url = "";
     webBrowser = new WebBrowser();
       _webBrowser.ScrollBarsEnabled = false;  
       _webBrowser.Navigate(url);
       _webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Completed);      
       while (_webBrowser.ReadyState != WebBrowserReadyState.Complete)
       {
           System.Windows.Forms.Application.DoEvents();  
       }
   }    
   public void Completed(object sender, WebBrowserDocumentCompletedEventArgs e)
   {
       _webBrowser.Width = _webBrowser.Document.Body.ScrollRectangle.Width;
       _webBrowser.Height = _webBrowser.Document.Body.ScrollRectangle.Height;
       using (Bitmap bmp = new Bitmap(_webBrowser.Width, _webBrowser.Height))
       {
           _webBrowser.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
           bmp.Save("C:\\Capture.png", ImageFormat.Png);
       }
   }
参考
------解决方案-------------------- 探讨  奇怪了,还是WebBrowser,可我引用了这个对象,里面明明没有关键的DrawToBitmap方法啊。问题出在哪里呢?? 
------解决方案-------------------- WebBrowser不是Com里面的那个AxWebbrowser,而是工具栏里面自带那个