codice:
Public Class PrintingExample
Private printFont As Font
Private streamToPrint As StreamReader
Private Shared filePath As String
Public Sub New()
Printing()
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)
' Iterate over the file, printing each line.
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
' Print the file.
Public Sub Printing()
Try
streamToPrint = New StreamReader(filePath)
Try
printFont = New Font("Arial", 10)
Dim pd As New PrintDocument()
AddHandler pd.PrintPage, AddressOf pd_PrintPage
' Print the document.
pd.Print()
Finally
streamToPrint.Close()
End Try
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub 'Printing
' This is the main entry point for the application.
Public Shared Sub Main()
Dim args() As String = System.Environment.GetCommandLineArgs()
Dim sampleName As String = args(0)
If args.Length <> 1 Then
Console.WriteLine("Usage: " & sampleName & " <file path>")
Return
End If
filePath = args(0)
End Sub
End Class
e questo se vuoi usare una prin dialog prima....
codice:
' Declare the PrintDocument object.
Private WithEvents docToPrint As New Printing.PrintDocument
' This method will set properties on the PrintDialog object and
' then display the dialog.
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
' Allow the user to choose the page range he or she would
' like to print.
PrintDialog1.AllowSomePages = True
' Show the help button.
PrintDialog1.ShowHelp = True
' Set the Document property to the PrintDocument for
' which the PrintPage Event has been handled. To display the
' dialog, either this property or the PrinterSettings property
' must be set
PrintDialog1.Document = docToPrint
Dim result As DialogResult = PrintDialog1.ShowDialog()
' If the result is OK then print the document.
If (result = DialogResult.OK) Then
docToPrint.Print()
End If
End Sub
' The PrintDialog will print the document
' by handling the document's PrintPage event.
Private Sub document_PrintPage(ByVal sender As Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles docToPrint.PrintPage
' Insert code to render the page here.
' This code will be called when the control is drawn.
' The following code will render a simple
' message on the printed document.
Dim text As String = "In document_PrintPage method."
Dim printFont As New System.Drawing.Font _
("Arial", 35, System.Drawing.FontStyle.Regular)
' Draw the content.
e.Graphics.DrawString(text, printFont, _
System.Drawing.Brushes.Black, 10, 10)
End Sub
il tutto preso da msdn....cercate cercate