I found this useful code at VB-Helper.com
.csharpcode
{
font-size: small;
color: black;
font-family: Courier New , Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
#Region "Print" Private Declare Auto Function BitBlt Lib "gdi32.dll" (ByVal _ hdcDest As IntPtr, ByVal nXDest As Integer, ByVal _ nYDest As Integer, ByVal nWidth As Integer, ByVal _ nHeight As Integer, ByVal hdcSrc As IntPtr, ByVal nXSrc _ As Integer, ByVal nYSrc As Integer, ByVal dwRop As _ System.Int32) As Boolean Private Const SRCCOPY As Integer = &HCC0020 ' Variables used to print. Private m_PrintBitmap As Bitmap Private WithEvents m_PrintDocument As Printing.PrintDocument Private Sub PrintForm() ' Copy the form's image into a bitmap. m_PrintBitmap = GetFormImage() ' Make a PrintDocument and print. MsgBox(m_PrintDocument.PrinterSettings.PrinterName) m_PrintDocument = New PrintDocument m_PrintDocument.Print() End Sub Private Function GetFormImage() As Bitmap ' Get this form's Graphics object. Dim me_gr As Graphics = Me.CreateGraphics ' Make a Bitmap to hold the image. Dim bm As New Bitmap(Me.ClientSize.Width, _ Me.ClientSize.Height, me_gr) Dim bm_gr As Graphics = Graphics.FromImage(bm) Dim bm_hdc As IntPtr = bm_gr.GetHdc ' Get the form's hDC. We must do this after ' creating the new Bitmap, which uses me_gr. Dim me_hdc As IntPtr = me_gr.GetHdc ' BitBlt the form's image onto the Bitmap. BitBlt(bm_hdc, 0, 0, Me.ClientSize.Width, _ Me.ClientSize.Height, _ me_hdc, 0, 0, SRCCOPY) me_gr.ReleaseHdc(me_hdc) bm_gr.ReleaseHdc(bm_hdc) ' Return the result. Return bm End Function ' Print the form image. Private Sub m_PrintDocument_PrintPage(ByVal sender As _ Object, ByVal e As _ System.Drawing.Printing.PrintPageEventArgs) Handles _ m_PrintDocument.PrintPage ' Draw the image centered. Dim x As Integer = e.MarginBounds.X + _ (e.MarginBounds.Width - m_PrintBitmap.Width) 2 Dim y As Integer = e.MarginBounds.Y + _ (e.MarginBounds.Height - m_PrintBitmap.Height) 2 e.Graphics.DrawImage(m_PrintBitmap, x, y) ' There's only one page. e.HasMorePages = False End Sub #End Region