Home Contents Search GhostDepot Vb.Net Depot

 Visual Studio Tips VB Printing Samples





VB Printing Tips


1. How To Print a Form Image

This example shows how to capture a Windows Form image and print it. The image is resized and centered to fit the Print Margins.

The example shows the Print Preview dialog. To print click the Print button on the dialog.

Many programmers attempt this with the old Power Pack Printform control. However that control is out of date, limited, and not easily modified. There is really no need to use the Power Pack it is all built into VB now.


Program Output Print Preview.


'prints form fit to page and centered with preview

Public Class Form1

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Text = "Print Form Fit to Page Example"
Size = New Size(1500, 700)
BackgroundImage = Image.FromFile("c:\bitmaps\rusty.jpg")
BackgroundImageLayout = ImageLayout.Zoom

Dim preview As New PrintPreviewDialog
Dim pd As New System.Drawing.Printing.PrintDocument
pd.DefaultPageSettings.Landscape = True
AddHandler pd.PrintPage, AddressOf OnPrintPage
preview.Document = pd

End Sub

Private Sub OnPrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)

'create a memory bitmap and size to the form
Using bmp As Bitmap = New Bitmap(Me.Width, Me.Height)

'draw the form on the memory bitmap
Me.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Width, Me.Height))

'draw the form image on the printer graphics sized and centered to margins
Dim ratio As Single = CSng(bmp.Width / bmp.Height)

If ratio > e.MarginBounds.Width / e.MarginBounds.Height Then

CInt(e.MarginBounds.Top + (e.MarginBounds.Height / 2) - ((e.MarginBounds.Width / ratio) / 2)),
CInt(e.MarginBounds.Width / ratio))


CInt(e.MarginBounds.Left + (e.MarginBounds.Width / 2) - (e.MarginBounds.Height * ratio / 2)),
CInt(e.MarginBounds.Height * ratio),

End If

End Using

End Sub

End Class




To use the examples make a new project with one Form. Past the example code into the form as shown. Run the example.




Copyright 2000 - 2019 Sandia Software