CLR: .Net / Mono / Boo / Otros CLR > VB .NET
Imprimir
(1/1)
daphne:
hola necesito de su gran ayuda se supone que tengo que hacer un programa para poder imprimir numeros consecutivos es decir con un bucle for que en cada hoja me imprima un numero el problema es que me imprime todos los numeros amontonados y en una sola hoja y no se como hacerle para que me imprima un numero en cada hoja este es el codigo que tengo ojala y le entiendan y me digan donde esta el error
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PrintPreviewDialog1.ShowDialog()
Dim printdialog1 As New PrintDialog()
printdialog1.Document = PrintDocument1
Dim resultado As DialogResult = printdialog1.ShowDialog
If (resultado = DialogResult.OK) Then
PrintDocument1.Print()
End If
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim a, b As Integer
a = txtinicio.Text
b = txtfin.Text
Dim i As Integer
For i = a To b
e.Graphics.DrawString(i, New Font("arial", 20, FontStyle.Bold), Brushes.Black, 510, 310)
Next i
End Sub
End Class
ayudenme porfitas
senzao18:
Por que no pones el ciclo en el boton
--- Código: Text --- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickPrintPreviewDialog1.ShowDialog()Dim printdialog1 As New PrintDialog()printdialog1.Document = PrintDocument1Dim resultado As DialogResult = printdialog1.ShowDialogIf (resultado = DialogResult.OK) Then 'For PrintDocument1.Print()'EndFor End IfEnd Sub
daphne:
--- Cita de: "senzao18" --- Por que no pones el ciclo en el boton
--- Código: Text --- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickPrintPreviewDialog1.ShowDialog()Dim printdialog1 As New PrintDialog()printdialog1.Document = PrintDocument1Dim resultado As DialogResult = printdialog1.ShowDialogIf (resultado = DialogResult.OK) Then 'For PrintDocument1.Print()'EndFor End IfEnd Sub
--- Fin de la cita ---
:( hola senzao18 osea si imprime pero a la hora de mandar a imprimir salen los numeros amontonados y en una sola hoja lo que quiero es que el cada numero se imprima en una hoja por ejemplo el 1 en una hoja, el 2 en otra hoja, el tres en otra hoja y asi sucesivamente. como le puedo hacer por favor ayudame me super urge
gracias espero meentiendas
senzao18:
Una forma rapida de sacar eso es con el siguiente codigo.
--- Código: Text --- Dim a, b As Integer Dim i As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PrintPreviewDialog1.ShowDialog() Dim printdialog1 As New PrintDialog printdialog1.Document = PrintDocument1 Dim resultado As DialogResult = printdialog1.ShowDialog If (resultado = DialogResult.OK) Then a = 1 b = 3 For i = a To b PrintDocument1.Print() Next End If End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.DrawString(i, New Font("arial", 100, FontStyle.Bold), Brushes.Black, 510, 310) End Sub
senzao18:
Otra forma de hacerlo en un solo documento es de la siguiente forma...
--- Código: Text --- Dim a, b As Integer Dim i As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click a = 1 b = 10 i = a PrintPreviewDialog1.Document = PrintDocument1 ''''Se dispara el evento PrintDocument1_PrintPage PrintPreviewDialog1.ShowDialog() Dim printdialog1 As New PrintDialog printdialog1.Document = PrintDocument1 Dim resultado As DialogResult = printdialog1.ShowDialog If (resultado = DialogResult.OK) Then a = 1 b = 10 i = a ''''Se dispara el evento PrintDocument1_PrintPage PrintDocument1.Print() End If End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.DrawString(i, New Font("arial", 100, FontStyle.Bold), Brushes.Black, 510, 310) i += 1 If i > b Then e.HasMorePages = False Else e.HasMorePages = True End If End Sub
Te recomiendo que instales la "impresora" Microsoft Office Document Image Writer
por si en pruebas se te cicla no te mande un chorro de hojas y se hechen a la basura jeje :D.
Pero esta garantizado que ese codigo no se cicla. Almenos que le muevas jaja.
La diferencia entre este codigo y el otro es que solo mandamos una sola ves a imprimir y en el primero mandamos a imprimir varios documentos, uno por ciclo.
Espero y te sea de utilizad.
P.D. Yo no sabia como hacerlo jeje.
Navegación
Ir a la versión completa