![](/img/trans.png)
[英]How to save webpage with css and js files from C# webbrowser?
[英]How to save a complete webpage using the built-in webbrowser in c#
总的来说,我正在尝试将网页写成PDF。 我可以使用一个Web服务将文件转换为pdf。 所以我想做的是从WebBrowser winforms控件中保存一个网页。
我已经尝试将其写出文档流,但这只是给我页面的html,而不是与之一起使用的图像。
我研究但尚未成功的另一种方法是尝试创建WebBrowser文档的图像。 我在网络上发现了一些利用DrawToBitmap函数的示例,但没有一个对我有用。
任何帮助将不胜感激。
您可以使用Graphics.CopyFromScreen
函数来截取屏幕快照,直到获得整个页面。
// Get screen location of web browser
Rectangle rec = webBrowser1.RectangleToScreen(webBrowser1.ClientRectangle);
// create image to hold whats in view
Bitmap image = new Bitmap(rec.Width, rec.Height);
// get graphics to draw on image
Graphics g = Graphics.FromImage(image);
// Save into image
// From MSDN:
//public void CopyFromScreen(
// int sourceX,
// int sourceY,
// int destinationX,
// int destinationY,
// Size blockRegionSize
//)
g.CopyFromScreen(rec.X,rec.Y,0,0,rec.Size)
您可能还需要删除滚动条,使它们不在您的图像中:
webBrowser.ScrollBarsEnabled = false;
webBrowser.Document.Body.Style = "overflow:hidden;";
然后向下滚动以拍摄下一页:
webBrowser.Document.Window.ScrollTo(x,y);
很久以前,我偶然发现了此CodeProject文章“ 将HTML文档捕获为图像 ”
但是,有一个新的发布(2010年2月13日发布)“ C#中的HTML到图像 ”
我没有测试过它们中的任何一个,但我认为它们应该可以工作!
要创建PDF,您正在使用的程序将需要网站的源代码。 不管您使用WebBrowser winforms控件还是其他获取该信息的控件,都没有真正的区别。
假设您不需要先上传内容,则此代码将为您获取任何网站的源代码:
string url = "some site";
string source = string.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using(StreamReader sr = new StreamReader(response.GetResponseStream()){
source = sr.ReadToEnd();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.