Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: taliban en 30 de Marzo 2014, 13:33
-
hola ,mi problema, no se como conseguir que me imprima todo el form ordenado cada textbox en su sitio y si hay alguna forma mejor de hacerlo, o si se puede con un codigo imprimir todo el form
ami me imprime line sobre linea , una en cima de otra
Private Sub btnimprimirfactura_Click(sender As System.Object, e As System.EventArgs) Handles btnimprimirfactura.Click
If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
PrintDocument1.Print()
End If
End Sub
Private Sub PrintDocument1_PrintPage(sender As System.Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawString(IdTextBox.Text, New Font("Verdana", 12, FontStyle.Bold), Brushes.Black, 10, 10)
e.Graphics.DrawString(NombreTextBox.Text, New Font("Verdana", 12, FontStyle.Bold), Brushes.Black, 100, 20)
e.Graphics.DrawString(ApellidosTextBox.Text, New Font("Verdana", 12, FontStyle.Bold), Brushes.Black, 14, 14)
e.Graphics.DrawString(NombreempresaTextBox.Text, New Font("Verdana", 12, FontStyle.Bold), Brushes.Black, 16, 16)
e.Graphics.DrawString(Elemento1TextBox.Text, New Font("Verdana", 12, FontStyle.Bold), Brushes.Black, 18, 18)
e.Graphics.DrawString(Importe1TextBox.Text, New Font("Verdana", 12, FontStyle.Bold), Brushes.Black, 19, 19)
End Sub
-
Hola, para imprimir un form completo:
En la parte izquierda de Visual Basic cuando estás en la vista de diseño te aparecen distintas partes: Controles Comunes (puntero, button, checkbox, label, textbox, etc.), Contenedores, Menús y barras de herramientas...
Busca donde pone "Visual Basic Power Packs", ahí te aparecen distintos controles como puntero, printform, lineshape, ovalhshape, rectangleshape... Arrastra el control que se llama "PrintForm" al formulario (aparecerá en la parte inferior del formulario, no encima de él)
Comprueba que en las propiedades del PrintForm tengas la propiedad "PrintAction" con valor PrintToPrinter
En el botón que quieras sirva para imprimir añade esto:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PrintForm1.Print()
End Sub
De este modo al pulsar en el botón de imprimir te imprimirá el formulario completo.
-
gracias lo he probado y funciona muy bien , pero al imprimir no me sale el formulario completo , no imprime una parte de la derecha y no se porque
Private Sub btnimprimirfactura_Click(sender As System.Object, e As System.EventArgs) Handles btnimprimirfactura.Click
Dim configpg As PageSettings
Dim configprt As PrinterSettings
configpg = New PageSettings
configprt = New PrinterSettings
PageSetupDialog1.PageSettings = configpg
PageSetupDialog1.AllowPrinter = True
PageSetupDialog1.PrinterSettings = configprt
PageSetupDialog1.ShowDialog()
MessageBox.Show("Ha elegido la impresora " & " en papel " & PageSetupDialog1.PageSettings.PaperSize.PaperName & " en formato " & (IIf(PageSetupDialog1.PageSettings.Landscape, " Horizontal ", " Vertical ")))
' If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
'PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
PrintForm1.Print()
'PrintDocument1.Print()
' End If
End Sub
-
¿Puede ser que el tamaño del formulario sea más grande de lo que cabe en la página? Si fuera eso podrías modificar el tamaño del formulario o el tamaño de la página...
-
hola he reducido el tamaño del formulario y lo imprime todo pero no ocupa el tamaño completo de la hoja a4,hay algun código para eso o es problema de la impresora ? gracias
-
Para permitir que el usuario elija la página haz esto:
En la parte izquierda de Visual Basic cuando estás en la vista de diseño te aparecen distintas partes: Controles Comunes (puntero, button, checkbox, label, textbox, etc.), Contenedores, Menús y barras de herramientas...
Busca donde pone "Impresión", ahí te aparecen distintos controles como puntero, pageSetupDialog, PrintDialog, etc. Arrastra el control que se llama "PrintDialog" al formulario (aparecerá en la parte inferior del formulario, no encima de él).
Ahora en el código para el botón imprimir pon esto:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If PrintDialog1.ShowDialog() Then
PrintForm1.PrinterSettings = PrintDialog1.PrinterSettings
PrintForm1.Print()
End If
End Sub
Ahora te debe aparecer una ventana donde te dará opciones a elegir la impresora, etc. Si pulsas en preferencias puedes establecer que te ajuste el tamaño, elegir la orientación del papel, etc. así puedes sacarlo como quieras.