Print Preview and Print : Print Preview « GUI « VB.Net






Print Preview and Print

Imports System
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing.Imaging
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Drawing.Drawing2D

Public Class MainClass

   Shared Sub Main()
       Dim form1 As Form1 =  new Form1()
       Application.Run(form1)
   End Sub 

End Class



Public Class Form1
    ' Display a print preview dialog.
    Private Sub btnPrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintPreview.Click
        dlgPrintPreview.ShowDialog()
    End Sub

    ' Display a print dialog.
    Private Sub btnPrintDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintDialog.Click
        If dlgPrint.ShowDialog() = Windows.Forms.DialogResult.OK Then
            dlgPrint.Document.Print()
        End If
    End Sub

    ' Print now.
    Private Sub btnPrintNow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintNow.Click
        pdocGraph.Print()
    End Sub

    ' Print a page.
    Private Sub pdocGraph_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pdocGraph.PrintPage
        e.Graphics.DrawRectangle(Pens.Red, e.MarginBounds)

        Dim picture_rect As New RectangleF(100, 100, 500, 300)
        Dim margin_rect As New RectangleF( _
            e.MarginBounds.X, _
            e.MarginBounds.Y, _
            e.MarginBounds.Width, _
            e.MarginBounds.Height)
        CenterPictureInMargins(e.Graphics, picture_rect, margin_rect)

        ' Draw a rectangle 
        e.Graphics.FillRectangle(Brushes.LightGray, picture_rect)
        e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(picture_rect))

        ' There are no more pages.
        e.HasMorePages = False
    End Sub


    Private Sub CenterPictureInMargins(ByVal gr As Graphics, ByVal picture_bounds As RectangleF, ByVal margin_bounds As RectangleF)
        gr.ResetTransform()

        Dim dx As Single = _
            margin_bounds.Left - picture_bounds.Left + _
            (margin_bounds.Width - picture_bounds.Width) / 2
        Dim dy As Single = _
            margin_bounds.Top - picture_bounds.Top + _
            (margin_bounds.Height - picture_bounds.Height) / 2
        gr.TranslateTransform(dx, dy)
    End Sub
End Class


<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Public Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.btnPrintNow = New System.Windows.Forms.Button
        Me.btnPrintDialog = New System.Windows.Forms.Button
        Me.btnPrintPreview = New System.Windows.Forms.Button
        Me.dlgPrintPreview = New System.Windows.Forms.PrintPreviewDialog
        Me.pdocGraph = New System.Drawing.Printing.PrintDocument
        Me.dlgPrint = New System.Windows.Forms.PrintDialog
        Me.SuspendLayout()
        '
        'btnPrintNow
        '
        Me.btnPrintNow.Location = New System.Drawing.Point(49, 90)
        Me.btnPrintNow.Name = "btnPrintNow"
        Me.btnPrintNow.Size = New System.Drawing.Size(88, 24)
        Me.btnPrintNow.TabIndex = 11
        Me.btnPrintNow.Text = "Print Now"
        '
        'btnPrintDialog
        '
        Me.btnPrintDialog.Location = New System.Drawing.Point(49, 58)
        Me.btnPrintDialog.Name = "btnPrintDialog"
        Me.btnPrintDialog.Size = New System.Drawing.Size(88, 24)
        Me.btnPrintDialog.TabIndex = 10
        Me.btnPrintDialog.Text = "Print Dialog"
        '
        'btnPrintPreview
        '
        Me.btnPrintPreview.Location = New System.Drawing.Point(49, 26)
        Me.btnPrintPreview.Name = "btnPrintPreview"
        Me.btnPrintPreview.Size = New System.Drawing.Size(88, 24)
        Me.btnPrintPreview.TabIndex = 9
        Me.btnPrintPreview.Text = "Print Preview"
        '
        'dlgPrintPreview
        '
        Me.dlgPrintPreview.AutoScrollMargin = New System.Drawing.Size(0, 0)
        Me.dlgPrintPreview.AutoScrollMinSize = New System.Drawing.Size(0, 0)
        Me.dlgPrintPreview.ClientSize = New System.Drawing.Size(400, 300)
        Me.dlgPrintPreview.Document = Me.pdocGraph
        Me.dlgPrintPreview.Enabled = True
        Me.dlgPrintPreview.Name = "dlgPrintPreview"
        Me.dlgPrintPreview.Visible = False
        '
        'dlgPrint
        '
        Me.dlgPrint.Document = Me.pdocGraph
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(187, 140)
        Me.Controls.Add(Me.btnPrintNow)
        Me.Controls.Add(Me.btnPrintDialog)
        Me.Controls.Add(Me.btnPrintPreview)
        Me.Name = "Form1"
        Me.Text = "CenterPicture"
        Me.ResumeLayout(False)

    End Sub
    Friend WithEvents btnPrintNow As System.Windows.Forms.Button
    Friend WithEvents btnPrintDialog As System.Windows.Forms.Button
    Friend WithEvents btnPrintPreview As System.Windows.Forms.Button
    Friend WithEvents dlgPrintPreview As System.Windows.Forms.PrintPreviewDialog
    Friend WithEvents pdocGraph As System.Drawing.Printing.PrintDocument
    Friend WithEvents dlgPrint As System.Windows.Forms.PrintDialog

End Class

           
       








Related examples in the same category

1.Print Preview Control
2.Print Preview Dialog Demo
3.Print Preview, print dialog for a custome PiePrint Preview, print dialog for a custome Pie
4.Print preview your document before printPrint preview your document before print
5.Simple Demo for Print Preview Control