2012-02-13 211 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?