Modifiqué un poco porque el código que pone carga una linea por cada repetición del for pero el mio era texto establecido y el for solo va cuando cargo las líneas de datagridview.
Entonces el código lo dejo así.
Código vb:
Ver originalDim posicion As Integer = 20
Dim lineaimpresa As Integer = 0
Dim leftMargin As Single = 30
Dim topMargin As Single = e.MarginBounds.Top - 50
Dim salto_pagina As Boolean = False
Dim Fil, Col As Int32
Dim LString As String = ""
Dim NroLineasPagina As Integer = 70
lineaimpresa += 1
LString = LString & "Hostal Mi Fantasía" & vbCrLf & vbCrLf & vbCrLf
lineaimpresa += 1
LString = LString & "Contabilidad Mensual " & vbCrLf & vbCrLf & vbCrLf
lineaimpresa += 1
LString = LString & "Fecha de impresión: " & Today & vbCrLf & vbCrLf & vbCrLf & _
"------------------------------------------------------------------------------------------------" & vbCrLf & vbCrLf & vbCrLf
lineaimpresa += 1
LString = LString & "Reservas: " & ComboBox2.Text & "" & vbCrLf & vbCrLf & vbCrLf
lineaimpresa += 1
LString = LString & "Tipo Habitación Depósito Efectivo Total" & vbCrLf & vbCrLf
count = 0
For Fil = 0 To DataGridView1.Rows.Count - 1
For Col = 0 To DataGridView1.Columns.Count - 1
Call RellenarEsp2(DataGridView1.Item(Col, Fil).Value.ToString, Col)
lineaimpresa += 1
LString = LString & ncadena & Space(3)
Next
count += 1
If lineaimpresa >= NroLineasPagina Then
salto_pagina = True
End If
If salto_pagina = True Then
e.HasMorePages = True
Else
e.HasMorePages = False
End If
lineaimpresa += 1
LString = LString & vbCrLf
Next
lineaimpresa += 1
LString = LString & "" & vbCrLf
lineaimpresa += 1
LString = LString & "Depósitos: " & TextBox1.Text & "" & vbCrLf
lineaimpresa += 1
LString = LString & "Efectivo: " & TextBox2.Text & "" & vbCrLf
lineaimpresa += 1
LString = LString & "Total: " & TextBox4.Text & ""
e.Graphics.DrawString(LString, printFont, Brushes.Black, leftMargin, posicion, New StringFormat())
Con esto se repite la misma hoja. Entendí que hiciste el problema es que la variable "i" que tu repites sumandole 1 en cada repetición también es la que presentas y es integer pero como te das cuenta en el mio no se repite ninguna linea por eso se me complicó.
También he de decirte que con el ejemplo que pusiste por si solo si continúa en las demás hojas pero aún asi se corta en la parte de abajo de la hoja y se saltan varios número entre las hojas.
Por cierto para no abrir otro tema como cojo el valor de la celda a la que le doy doble click? e.rowindex y e.columnindex no me funciona.
Gracias.
Saludos.