Lo solucione asi.
Lo dejo por si a alguien le sirve.
Código vb:
Ver originalPrivate Sub print1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles print1.PrintPage
Dim cc, desx, desy As Integer
Dim Ini As CIniClass
Dim auxtxt As String
Dim newImage As Image
Dim ulCorner As Point
Dim urCorner As Point
Dim llCorner As Point
e.Graphics.PageUnit = GraphicsUnit.Millimeter
desx = 10
desy = 20
Dim destPara As Point() = {ulCorner, urCorner, llCorner}
Ini = New CIniClass
cc = 0
e.Graphics.DrawString("Productos Faltantes de " & cboTMP.Text, New Font("Arial", 18, FontStyle.Regular), Brushes.Black, 5, 5)
While Me.lvwFaltante.Items.Count > cp
If My.Computer.FileSystem.FileExists(Me.lvwFaltante.Items(cp).SubItems(4).Text) Then
newImage = Image.FromFile(Me.lvwFaltante.Items(cp).SubItems(4).Text)
ulCorner = New Point(1 + desx, desy)
urCorner = New Point(30 + desx, desy)
llCorner = New Point(1 + desx, desy + 26)
destPara = {ulCorner, urCorner, llCorner}
' Draw image to screen.
e.Graphics.DrawImage(newImage, destPara)
End If
e.Graphics.DrawString(Me.lvwFaltante.Items(cp).SubItems(0).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy)
auxtxt = ArreglaTextoP(Me.lvwFaltante.Items(cp).SubItems(1).Text)
e.Graphics.DrawString(auxtxt, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy + 4)
e.Graphics.DrawString(Me.lvwFaltante.Items(cp).SubItems(3).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy + 22)
If (cc / 2) = Int((cc / 2)) Then
desx = 95
Else
desx = 10
desy = (desy + 28)
End If
If cc > 16 Then
pag = pag + 1
e.Graphics.DrawString("Pagina: " & pag, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 95, 280)
cc = 1
desx = 10
desy = 20
e.HasMorePages = True
cp = cp + 1
Exit Sub
Else
e.HasMorePages = False
cc = cc + 1
End If
cp = cp + 1
End While
pag = pag + 1
e.Graphics.DrawString("Pagina: " & pag, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 95, 280)
End Sub