Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 26th, 2012  |  syntax: None  |  size: 2.82 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Web Browser control crashes
  2. Imports Microsoft.VisualBasic
  3. Imports System.Threading
  4. Imports System.Drawing
  5. Imports System.Windows.Forms
  6.  
  7. Public Class ImageFromHtml
  8.     Private PageUrl As String = "http://localhost/Default2.aspx"
  9.     Private ConvertedImage As Bitmap
  10.  
  11.     Private m_intHeight As Integer = 1000
  12.     Public Property Height() As Integer
  13.         Get
  14.             Return m_intHeight
  15.         End Get
  16.         Set(ByVal value As Integer)
  17.             m_intHeight = value
  18.         End Set
  19.     End Property
  20.  
  21.     Private m_intWidth As Integer = 100
  22.     Public Property Width() As Integer
  23.         Get
  24.             Return m_intWidth
  25.         End Get
  26.         Set(ByVal value As Integer)
  27.             m_intWidth = value
  28.         End Set
  29.     End Property
  30.  
  31.     Public Function ConvertPage() As Bitmap
  32.         Me.PageUrl = PageUrl
  33.         Dim thrCurrent As New Thread(New ThreadStart(AddressOf CreateImage))
  34.         thrCurrent.SetApartmentState(ApartmentState.STA)
  35.         thrCurrent.Start()
  36.         thrCurrent.Join()
  37.         ConvertedImage.Save("c:Test.bmp", _
  38.         System.Drawing.Imaging.ImageFormat.Bmp)
  39.         Return ConvertedImage
  40.     End Function
  41.     Public Sub CreateImage()
  42.  
  43.         Dim BrowsePage As New WebBrowser()
  44.         BrowsePage.ScrollBarsEnabled = False
  45.         BrowsePage.Navigate(PageUrl)
  46.         AddHandler BrowsePage.DocumentCompleted, AddressOf _
  47. WebBrowser_DocumentCompleted
  48.  
  49.         While BrowsePage.ReadyState <> WebBrowserReadyState.Complete
  50.             Application.DoEvents()
  51.         End While
  52.         BrowsePage.Dispose()
  53.     End Sub
  54.  
  55.     Private Sub WebBrowser_DocumentCompleted(ByVal sender As Object, ByVal e As  _
  56. WebBrowserDocumentCompletedEventArgs)
  57.         Dim BrowsePage As WebBrowser = DirectCast(sender, WebBrowser)
  58.         BrowsePage.ClientSize = New Size(Width, Height)
  59.         BrowsePage.ScrollBarsEnabled = False
  60.         ConvertedImage = New Bitmap(Width, Height)
  61.         BrowsePage.BringToFront()
  62.         BrowsePage.DrawToBitmap(ConvertedImage, BrowsePage.Bounds)
  63.  
  64.     End Sub
  65.  
  66.     End Class
  67.        
  68. Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  69.         Dim obj As New ImageFromHtml()
  70.         obj.ConvertPage()
  71.         obj = Nothing
  72.     End Sub
  73.        
  74. ' Navigates to the given URL if it is valid.
  75. Private Sub Navigate(ByVal address As String)
  76.  
  77.     If String.IsNullOrEmpty(address) Then Return
  78.     If address.Equals("about:blank") Then Return
  79.     If Not address.StartsWith("http://") And _
  80.         Not address.StartsWith("https://") Then
  81.         address = "http://" & address
  82.     End If
  83.  
  84.     Try
  85.         webBrowser1.Navigate(New Uri(address))
  86.     Catch ex As System.UriFormatException
  87.         Return
  88.     End Try
  89.  
  90. End Sub
  91.        
  92. While BrowsePage.ReadyState <> WebBrowserReadyState.Complete
  93.     Application.DoEvents()
  94. End While
  95.        
  96. ConvertedImage.Save("c:Test.bmp", _
  97. System.Drawing.Imaging.ImageFormat.Bmp)