Some time reporting tools are too heavy to use with a small application. Something similar happens with me, I need to print a Single page text information for this I cannot use any Heavy reporting software although this information is fetched from XML/Database. So I opt to use in built .NET feature and having following for you to use now.
First Add a PrintDialog box on your Windows Application that gives printing capability.
Now Include a Object with its events in your code
Private WithEvents doctoprint As New Printing.PrintDocument
Once we have these basic Set up now, we can simply copy paste given two function on page to Print document define in FILE_PATH constant
Private Sub PrintDocument() PrintText.AllowSomePages = False PrintText.AllowSelection = False PrintText.ShowHelp = False PrintText.Document = doctoprint Dim result As DialogResult = PrintText.ShowDialog If result = Windows.Forms.DialogResult.OK Then Try streamToPrint = New StreamReader(FILE_PATH) doctoprint.DocumentName = "Title to Show on 'Now printing dialog'" doctoprint.Print() streamToPrint.Close() Catch ex As Exception MsgBox("Unable to print") End Try End If End Sub Private Sub doctoprint_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles doctoprint.PrintPage 'change this line tochange default font for printing. Dim printFont As New System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Regular) Dim linesPerPage As Single = 0 Dim yPos As Single = 0 Dim count As Integer = 0 Dim leftMargin As Single = e.MarginBounds.Left Dim topMargin As Single = e.MarginBounds.Top Dim line As String = Nothing ' Calculate the number of lines per page. linesPerPage = e.MarginBounds.Height / printFont.GetHeight(e.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(e.Graphics) e.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 e.HasMorePages = True Else e.HasMorePages = False End If End Sub
Now, simply call your PrintDocument() function to start printing of FILE_PATH using your Print Button or menu option.