Hola de nuevo a todos.
Tengo una aplicación en la que mando imprimir un listado de artículos con el objeto e.Graphics e imprime lo que le digo, pero SÓLO UNA PÁGINA.
Es decir, que cuando se completa la primera página en lugar de continuar con el listado, termina ahí.
He visto que con la instrucción e.HasMorePages = (True ó False) podemos indicar si queremos que imprima más página o no.
El caso es que no consigo averiguar en qué parte del código lo indico porque he probado cuando se sobrepasa el número líneas por página y no funciona.
Ya se que es culpa mía y que algo estoy haciendo mal´. Por eso acompaño el código de esa parate a ver si me podéis ayudar.

Código:
 Try
            dr = cmd.ExecuteReader
            If dr.HasRows Then
                yPos = 1 * TW
                While dr.Read()
                    xpos = 1.3 * TW
                    e.Graphics.DrawString(String.Format("{0,5:N0}", dr(0)), prFont, Brushes.Black, xpos, yPos, sf)
                       xpos = 8.3 * TW
                    e.Graphics.DrawString(String.Format(vb.Left(dr(1), 40)), prFont, Brushes.Black, xpos, yPos, sf)  
                    If Not IsDBNull(dr(3)) Then
                        xpos = 10.4 * TW
                        e.Graphics.DrawString(String.Format("{0,6:N2}", dr(3)), prFont, Brushes.Black, xpos, yPos, sf)
                    End If
                    If Not IsDBNull(dr(2)) Then
                        xpos = 12.4 * TW
                        e.Graphics.DrawString(String.Format("{0,6:N2}", dr(2)), prFont, Brushes.Black, xpos, yPos, sf)
                    End If

                    If Not IsDBNull(dr(4)) Then
                        xpos = 14.4 * TW
                        e.Graphics.DrawString(String.Format("{0,6:N2}", dr(4)), prFont, Brushes.Black, xpos, yPos, sf)
                    End If

                    If Not IsDBNull(dr(5)) Then
                        xpos = 16.4 * TW
                        e.Graphics.DrawString(String.Format("{0,6:N2}", dr(5)), prFont, Brushes.Black, xpos, yPos, sf)
                    End If

                    If Not IsDBNull(dr(6)) Then
                        xpos = 18.4 * TW
                        e.Graphics.DrawString(String.Format("{0,6:N2}", dr(6)), prFont, Brushes.Black, xpos, yPos, sf)
                    End If

                    If Not IsDBNull(dr(7)) Then
                        xpos = 20.4 * TW
                        e.Graphics.DrawString(String.Format("{0,6:N2}", dr(7)), prFont, Brushes.Black, xpos, yPos, sf)
                    End If
                    yPos += 0.4 * TW
                    pasaron += 1
                End While
            End If
            dr.Close()
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

Muchas gracias por vuestra ayuda.