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.
Many Thanks.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




Reply With Quote