我正在考虑使用WebBrowser对象来创建用户访问过的页面的屏幕截图(通过捕获URL)。这节课的一部分看起来像下面的the。这是一个内部应用程序,目的是让用户看到几个月前他们上次访问时动态页面的样子。
Public Function ConvertPage(ByVal PageUrl As String) As Bitmap
Me.PageUrl = PageUrl
Dim thrCurrent As New Thread(New ThreadStart(AddressOf CreateImage))
thrCurrent.SetApartmentState(ApartmentState.STA)
thrCurrent.Start()
thrCurrent.Join()
CreateImage()
Return ConvertedImage
End Function
Private Sub CreateImage()
Dim BrowsePage As New WebBrowser()
BrowsePage.ScrollBarsEnabled = False
BrowsePage.Navigate(PageUrl)
AddHandler BrowsePage.DocumentCompleted, AddressOf _
WebBrowser_DocumentCompleted
While BrowsePage.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
End While
BrowsePage.Dispose()
End Sub
今天早些时候,我读了一篇文章(我想它就在这里),回答者建议提问者避免这种方法。我没有这个帖子的链接。这是不是一个糟糕的appach bin您的视图,即在ASP.NET页面中使用WebBrowser对象?
我想这就是你想要的链接
在asp.net 中使用winforms WebBrowser的问题
这个代码项目页面似乎有一个解决方案,并谈到了它的优点http://www.codeproject.com/Articles/50544/Using-the-WebBrowser-Control-in-ASP-NET
他的解决方案似乎需要三个线程来使用控件;
也许更好的选择是通过Javascript获取信息,然后通过ajax调用发布信息,看看这个实现它的Javascript库http://html2canvas.hertzen.com/
如果你要使用网络浏览器的方法,这个问题的底部是用于捕获图像的c#代码
用JavaScript截图网页?