1、添加引用javascript
在解決方案上單擊右鍵,選擇「Add Reference...」,添加「System.Windows.Forms」,添加完後,Web.Config 中應該有相似下面的內容:java
2、 設置 STA 模式web
在 @ Page 指令中加上 AspCompat="true",以強制該網頁在 STA(單線程單元) 模式下執行。結果相似以下:瀏覽器
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" AspCompat="true" %>
3、寫截圖代碼網站
Code
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
public partial class _Default : System.Web.UI.Page
{
private WebBrowser _webBrowser;
protected void Page_Load(object sender, EventArgs e)
{
string url = Request.QueryString["url"];
if (string.IsNullOrEmpty(url))
{
url = "http://www.cftea.com/";
}
_webBrowser = new WebBrowser();
_webBrowser.ScrollBarsEnabled = false; //不顯示滾動條
_webBrowser.Navigate(url);
_webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(Completed);
while (_webBrowser.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents(); //避免假死,若去掉則可能沒法觸發 DocumentCompleted 事件。
}
}
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);
}
}
}
4、說明this
在調試時,若出錯,應該中止 ASP.NET Development Server,從新運行,若是你用的是 IIS,可能須要從新啓動 IIS(猜想是這樣),不然 Navigate 那句會出錯。url
有些網站抓下來是空白,尚未仔細研究過爲何。spa
--------------------------
新聞:
微軟網頁開發調試利器SuperPreview(附下載)
導航:
博客園首頁
知識庫
新聞
招聘
社區
小組
博問
網摘
找找看