Visual Basic.NET - Salto de página con PrintDocument

 
Vista:

Salto de página con PrintDocument

Publicado por Diego (20 intervenciones) el 06/07/2008 23:51:23
¡Hola a todos!
Trabajo con VB.NET 2003 e imprimo con PrinDocument. Intento obtener un salto de página en la generación de impresión y no encuentro nada lógico. ¿Cómo puedo lograr un salto de página con PrinDocument? Desde ya muchas gracias.

Saludos

Diego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Salto de página con PrintDocument

Publicado por ros (21 intervenciones) el 25/03/2011 14:42:15
Vamos a ver si consigo explicártelo, yo estoy en este momento peleándome con PRINTDOCUMENT desde VB NET 2010, el problema es que PRINTDOCUMENT carece de salto de pagina, vale, ya lo se, es una gran cagada de Microsoft, pero es lo que hay.


Lo que hace “e.HasMorePages = True” no es un salto de pagina, no es mas que un entra de nuevo al evento “PrintPage” y esta es la única manera de seguir imprimiendo en una segunda hoja en el mismo documento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Salto de página con PrintDocument

Publicado por Paulo (1 intervención) el 20/09/2011 17:12:33
Encuentro increíble que esta sea la única forma de salto de página, con PrintDocument, alguien sabe si existe como a la antigua un caracter de control Chr(12) o algo por estilo?
De acuerdo a la estructura de impresión, si quieres controlar el largo de la página lo tienes que hacer en la impresión de cada línea y si en esta misma rutina estas leyendo filas de una BD, el e.HasMorePages=true, volverá a leer los mismos registros de la BD cada vez. es lo que me está sucediendo ahora. A menos que haya que escribir el código de impresión con una estructura totalmente diferente, Microsoft sugiere algo al respecto?
les paso lo que estoy intentando:

al comienzo tengo definido:
Dim prnTxt As New PrintDocument

Private Sub Genera_Reporte_Impresora(ByVal esPreview As Boolean)
prnTxt.DocumentName = "REPORTE1"
AddHandler prnTxt.PrintPage, AddressOf Me.Genera_Reporte
prnTxt.DefaultPageSettings.PaperSize.Height = 0.11
prnTxt.Print()
End Sub

Private Sub Genera_Reporte(ByVal sender As System.Object, ByVal ePrint As PrintPageEventArgs)
...... leyendo una BD
While datatbl.Read = True

ePrint.Graphics.DrawString(datatbl(0), New Font(sTipoLetra, iTamanoLetra0, FontStyle.Regular, GraphicsUnit.Point), Brushes.Black, iCol, iLinea)
.....
' si agrego aquí el ePrint.HasMorePages=True, se reimprimen todas las paginas iguales.
End While
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar