上週我正在研究項目中的類似功能,請閱讀關於此主題的一些帖子,包括您的鏈接。我想分享我的經驗:
該函數的關鍵部分是System.Windows.Forms.WebBrowser.DrawToBitmap方法。
,但其不支持和不工作
它是支持和工作,但並不總是工作正常。在某些情況下,你會得到一個空白的圖像截圖(根據我的經驗,它加載的HTML越複雜,它越有可能失敗。在我的項目中,只有非常簡單和格式良好的htmls將被加載到WebBrowser控件,所以我從來沒有空白圖像)。
無論如何,我還沒有100%完美的解決方案。這裏是我的核心代碼的一部分,並希望它有幫助(它在ASP.NET MVC 3上工作)。
using (var browser = new System.Windows.Forms.WebBrowser())
{
browser.DocumentCompleted += delegate
{
using (var pic = new Bitmap(browser.Width, browser.Height))
{
browser.DrawToBitmap(pic, new Rectangle(0, 0, pic.Width, pic.Height));
pic.Save(imagePath);
}
};
browser.Navigate(Server.MapPath("~") + htmlPath); //a file or a url
browser.ScrollBarsEnabled = false;
while (browser.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
}
}
如果你的意思是SO線程,如何鏈接到他們,並指定爲什麼他們每個人沒有工作 –
有你馬特。順便說一句,你知道答案嗎? – user1873073
@ user1873073請張貼您的部分代碼。特別是在您正在加載文檔和文檔完成事件的情況下。 – scartag