Help in aligning printing
Hi all,
I am using streamwriter to write to a text file result from my select statement. I am also using printdialog and printdocument control to print the text file directly to the printer.
However, when the output is printed, the columns are not aligned. But when I viewed the text file, the columns are aligned correctly.
I don't know what made them un-aligned. Below is my code to print to printer.
Code:
Sub printdata()
Try
StreamToPrint = New IO.StreamReader("consultreport.txt")
PrintDialog1.Document = PrintDocument1
PrintDialog1.PrinterSettings = PrintDocument1.PrinterSettings
PrintDialog1.AllowSomePages = True
If PrintDialog1.ShowDialog = DialogResult.OK Then
PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
PrintDocument1.Print()
If Not (StreamToPrint Is Nothing) Then
StreamToPrint.Close()
End If
End If
Catch ex As ArithmeticException
MessageBox.Show(ex.Message & ex.StackTrace)
End Try
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim PrintFont As New Font("Gill Sans", 9)
Dim LinesPerPage As Single = e.MarginBounds.Height / PrintFont.GetHeight(e.Graphics)
Dim Line As String = Nothing, count As Integer, yPos As Single = 0
For count = 0 To LinesPerPage - 1
Line = StreamToPrint.ReadLine
If Line Is Nothing Then Exit For
yPos = e.MarginBounds.Top + count * PrintFont.GetHeight(e.Graphics)
e.Graphics.DrawString(Line, PrintFont, Brushes.Black, e.MarginBounds.Left, yPos, New StringFormat())
Next
If Not (Line Is Nothing) Then e.HasMorePages = True
End Sub
Many Thanks.