我用如下的代码进行网页截图 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 Default2 : 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.enorth.com.cn/";
} _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));
string FileName = DateTime.Now.ToString();
bmp.Save("e:\\Casdftsdsdfsfdfgddsusdfre.png", ImageFormat.Png);
// bmp.Save(@"e:\" + FileName + ".jpg");//保存截图到SnapPic目录下 }
}
} 为了启用单元线程
在aspx 页 的 page 头里加了 AspCompat="true"
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default2" AspCompat="true" %>但是还是只能对部分的网站进行截图,其它的网站截出的都是空白的图,谷歌和百度可以截图,新浪等大部分网站都不行,现在本地的网上也挺快的,但是还是很多网站都截不了图,大家看有什么好的办法吗
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货