当前位置: 代码迷 >> VB Dotnet >> VB.NET逐行打印,小票打印机多谢了
  详细解决方案

VB.NET逐行打印,小票打印机多谢了

热度:67   发布时间:2016-04-25 02:11:16.0
VB.NET逐行打印,小票打印机谢谢了
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

网上找来的代码,但是一次输出一页了,谁改改?最好加点注释。
------解决思路----------------------
http://blog.csdn.net/sz_bdqn/article/details/5917427
  相关解决方案