I have seen the same issue while printing using the default font (Microsoft Sans Serif). If you can use TTF fonts like Arial this issue may not be there.
You can try some thing like
Private textToPrint As String
Private printFont As Font
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
textToPrint = TextBox1.Text
printFont = New Font("Arial", 10)
PrintPreviewDialog1.ShowDialog()
End Sub
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim charsOnPage As Integer = 0
Dim linesPerPage As Integer = 0
e.Graphics.MeasureString(textToPrint, printFont, e.MarginBounds.Size, StringFormat.GenericTypographic, charsOnPage, linesPerPage)
e.Graphics.DrawString(textToPrint, printFont, Brushes.Black, e.MarginBounds, StringFormat.GenericTypographic)
textToPrint = textToPrint.Substring(charsOnPage)
e.HasMorePages = (textToPrint.Length > 0)
End Sub