2012-02-13 219 views
0

我正在考虑使用WebBrowser对象来创建一个用户访问一个网页的的屏幕截图(通过捕获URL)。部分课程将如下所示。这是一个内部应用程序,原因是允许用户查看几个月前动态页面上次访问时的状态。今天ASP.NET - 捕获屏幕截图

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 

早些时候,我在读的条目(我认为这是在这里)和回答者建议提问者避免使用此方法。我没有这篇文章的链接。这是一个糟糕的评价你的观点,即在ASP.NET页面中使用WebBrowser对象吗?

+2

看看这里:http://stackoverflow.com/questions/5172478/taking-screenshot-of-aspx-page – 2012-02-13 20:56:33

回答

1

我想这是你所追求的链接。
problem using winforms WebBrowser in asp.net

此代码项目页面,似乎有一个关于它的优点 http://www.codeproject.com/Articles/50544/Using-the-WebBrowser-Control-in-ASP-NET

他的解决方案似乎需要三个线程使用的控制方案和讲座;

也许是一个更好的选择将是通过JavaScript采取然后发布信息传回通过Ajax调用,看看这个JavaScript库,做它 http://html2canvas.hertzen.com/

如果您使用的网页浏览器的方式去ATT这个问题的底部是C#代码为拍摄图像

Take a screenshot of a webpage with JavaScript?