fruitloopy
asked on
VB.NET - Print to centre middle of page
I have a Windows Forms Application that sends a couple of lines of text, specifically a customer name and current date + 1 month to a printer. So far I have managed to get it to print in the middle of the page but I need it to print in the middle centre. I mean not just centred page width but also centred page height.
Here's my code so far:
Here's my code so far:
Friend TextToBePrinted As String
Dim print = MessageBox.Show("Would you like to print a retain slip to attach to the computer?", "Print retain slip", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If print = Windows.Forms.DialogResult.Yes Then
TextToBePrinted = Form1.txtRetainName.Text & vbCrLf & Date.Now.AddMonths(1)
Dim prn As New Printing.PrintDocument
Dim printer As String = "HP LaserJet P3010 Series UPD PCL 6"
Using (prn)
prn.PrinterSettings.PrinterName = printer
AddHandler prn.PrintPage, _
AddressOf Me.PrintPageHandler
prn.Print()
RemoveHandler prn.PrintPage, _
AddressOf Me.PrintPageHandler
End Using
End If
Private Sub PrintPageHandler(ByVal sender As Object, _
ByVal args As Printing.PrintPageEventArgs)
'Dim myFont As New Font("Arial", 22, FontStyle.Bold)
'args.Graphics.DrawString(TextToBePrinted, _
' New Font(myFont, FontStyle.Regular), _
' Brushes.Black, 50, 50)
Dim sngCenterPage As Single
Static fntHeadingFont As New Font("Arial", 22, FontStyle.Bold)
sngCenterPage = Convert.ToSingle(args.PageBounds.Width / 2 - args.Graphics.MeasureString _
(Form1.txtRetainName.Text & vbCrLf & Date.Now.AddMonths(1), fntHeadingFont).Width / 2)
'()
args.Graphics.DrawString(Form1.txtRetainName.Text & vbCrLf & Date.Now.AddMonths(1), fntHeadingFont, Brushes.Black, sngCenterPage, 2)
End Sub
This works fine as it centres it in the middle at the top of the page but I need it in the middle at the centre of the page
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.