Mega Code Archive

 
Categories / VB.Net / GUI
 

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