Print Picture Box

Andy666

Member
Joined
Aug 17, 2005
Messages
8
Programming Experience
Beginner
I have got an image in a picture box and i need to print it. Does anyone know how to do this??
 
Print an image

VB.NET:
Private [/color][/size][size=2][color=#0000ff]Sub[/color][/size][size=2] PrintDocument1_PrintPage([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] sender [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Object[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] e [/size][size=2][color=#0000ff]As[/color][/size][size=2] System.Drawing.Printing.PrintPageEventArgs) [/size][size=2][color=#0000ff]Handles[/color][/size][size=2] PrintDocument1.PrintPage
[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] R [/size][size=2][color=#0000ff]As[/color][/size][size=2] Rectangle
 
[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] PWidth, PHeight [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Integer
 
[/color][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] PictLeft, PictTop [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Integer
 
[/color][/size][size=2]PWidth = PictureBox1.Width
 
PHeight = PictureBox1.Height
 
[/size][size=2][color=#008000]' The following statements calculate the origin and the dimensions of the
 
[/color][/size][size=2][color=#008000]' rectangle in which the image will be printed, so that the image will be centered on the page
 
[/color][/size][size=2][color=#0000ff]With[/color][/size][size=2] PrintDocument1.DefaultPageSettings.PaperSize
 
[/size][size=2][color=#0000ff]If[/color][/size][size=2] PWidth < .Width [/size][size=2][color=#0000ff]Then
 
[/color][/size][size=2]PictLeft = (.Width - PWidth) / 2
 
[/size][size=2][color=#0000ff]Else
 
[/color][/size][size=2]PictLeft = 0
 
[/size][size=2][color=#0000ff]End [/color][/size][size=2][color=#0000ff]If
 
[/color][/size][size=2][color=#0000ff]If[/color][/size][size=2] PHeight < .Height [/size][size=2][color=#0000ff]Then
 
[/color][/size][size=2]PictTop = (.Height - PHeight) / 2
 
[/size][size=2][color=#0000ff]Else
 
[/color][/size][size=2]PictTop = 0
 
[/size][size=2][color=#0000ff]End [/color][/size][size=2][color=#0000ff]If
 
[/color][/size][size=2][color=#0000ff]End [/color][/size][size=2][color=#0000ff]With
 
[/color][/size][size=2]R = [/size][size=2][color=#0000ff]New[/color][/size][size=2] Rectangle(PictLeft, PictTop, PWidth, PHeight)
 
e.Graphics.DrawImage(PictureBox1.Image, R)
 
[/size][size=2][color=#0000ff]End [/color][/size][size=2][color=#0000ff]Sub

now you can call this to be printed (or call previewDialog if any)
VB.NET:
 PrintDocument1.Print()

Regards ;)

Note that it is very simple to print out an image from pictureBox if you avoid setting for it's proper appearing there .... all you need is just one line of code

VB.NET:
Private [size=2][color=#0000ff]Sub[/color][/size][size=2] PrintDocument1_PrintPage([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] sender [/size][size=2][color=#0000ff]As [/color][/size][size=2][color=#0000ff]Object[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] e [/size][size=2][color=#0000ff]As[/color][/size][size=2] System.Drawing.Printing.PrintPageEventArgs) [/size][size=2][color=#0000ff]Handles[/color][/size][size=2] PrintDocument1.PrintPage[/size]
[size=2]e.Graphics.DrawImage(PictureBox1.Image, [color=blue]New[/color] Point(0, 0)) 
[color=blue]End Sub
[/color]
[/size]
 
Back
Top