VB.NETPrintDocument类的使用
来源:优易学  2011-12-10 20:37:27   【优易学:中国教育考试门户网】   资料下载   IT书店
  Public Class PrintingExample
  Inherits System.Windows.Forms.Form
  Private components As System.ComponentModel.Container
  Private printButton As System.Windows.Forms.Button
  Private printFont As Font
  Private streamToPrint As StreamReader
  Public Sub New()
    ' The Windows Forms Designer requires the following call.
    InitializeComponent()
  End Sub
  ' The Click event is raised when the user clicks the Print button.
  Private Sub printButton_Click(sender As Object, e As EventArgs)
    Try
    streamToPrint = New StreamReader("C:My DocumentsMyFile.txt")
    Try
    printFont = New Font("Arial", 10)
    Dim pd As New PrintDocument()
    AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
    pd.Print()
    Finally
    streamToPrint.Close()
    End Try
    Catch ex As Exception
    MessageBox.Show(ex.Message)
    End Try
  End Sub
  ' The PrintPage event is raised for each page to be printed.
  Private Sub pd_PrintPage(sender As Object, ev As PrintPageEventArgs)
    Dim linesPerPage As Single = 0
    Dim yPos As Single = 0
    Dim count As Integer = 0
    Dim leftMargin As Single = ev.MarginBounds.Left
    Dim topMargin As Single = ev.MarginBounds.Top
    Dim line As String = Nothing
    ' Calculate the number of lines per page.
    linesPerPage = ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics)
    ' Print each line of the file.
    While count < linesPerPage
    line = streamToPrint.ReadLine()
    If line Is Nothing Then
    Exit While
    End If
    yPos = topMargin + count * printFont.GetHeight(ev.Graphics)
    ev.Graphics.DrawString(line, printFont, Brushes.Black, leftMargin, yPos, New StringFormat())
    count += 1
    End While
    ' If more lines exist, print another page.
    If Not (line Is Nothing) Then
    ev.HasMorePages = True
    Else
    ev.HasMorePages = False
    End If
  End Sub
  ' The Windows Forms Designer requires the following procedure.
  Private Sub InitializeComponent()
    Me.components = New System.ComponentModel.Container()
    Me.printButton = New System.Windows.Forms.Button()
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
    Me.ClientSize = New System.Drawing.Size(504, 381)
    Me.Text = "Print Example"
    printButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
    printButton.Location = New System.Drawing.Point(32, 110)
    printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat
    printButton.TabIndex = 0
    printButton.Text = "Print the file."
    printButton.Size = New System.Drawing.Size(136, 40)
    AddHandler printButton.Click, AddressOf printButton_Click
    Me.Controls.Add(printButton)
  End Sub
  ' This is the main entry point for the application. 
  Public Shared Sub Main()
    Application.Run(New PrintingExample())
  End Sub
  End Class

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训