none
punto de venta RRS feed

  • Pregunta

  • tengo esto y quiero que se imprima todas las filas en la pajina

    y solo se imprime una

     

    PrivateSubPrintDocument1_PrintPage(sender AsObject, e AsPrinting.PrintPageEventArgs) HandlesPrintDocument1.PrintPage

           

    Try


               

    DimFON1 AsNewFont("ARIAL", 8, FontStyle.Regular)

               

    ForEachrow AsDataGridViewRowInMe.DataGridView2.Rows

                    e.Graphics.DrawString(row.Cells(0).Value, FON1,

    Brushes.Black, 20, 10)

               

    Next


    viernes, 1 de marzo de 2013 20:58

Todas las respuestas

  • Para imprimir varias páginas con el PrintDocument, tienes que escribir tú mismo la lógica de cambio de página. Básicamente, al final del evento PrintPage pones e.hasMorePages=true mientras no hayas acabado, y eso hace que el evento PrintPage se vuelva a disparar para que vuelva a pintar la siguente página. Para saber qué página te toca imprimir cada vez que se dispara (y para poner e.hasMorePages=false cuando se acaben), necesitarás llevar una variable miembro del formulario que arrastre el número de página (incrementándola cada vez que entres en PrintPage). Y en lugar del foreach tendrás que usar un for con una variable de control, e ir haciendo el cálculo de su valor inicial y final en función de la página actual y el número de líneas que te quepan en la página. Y obviamente, hacer también el cálculo de la Y en el DrawString. Todo esto lleva trabajo y hay que programarlo línea por línea; no hay un automatismo que te lo haga directamente sin escribir código.

    lunes, 4 de marzo de 2013 21:08