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

Título: imprimir un form completo en visual basic 2010
Publicado 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

Código: [Seleccionar]
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
Título: Re:imprimir un form completo en visula basic 2010
Publicado por: Ogramar en 30 de Marzo 2014, 21:39
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.
Título: Re:imprimir un form completo en visula basic 2010
Publicado por: taliban en 31 de Marzo 2014, 12:22
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

Código: [Seleccionar]
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
Título: Re:imprimir un form completo en visual basic 2010
Publicado por: Ogramar en 31 de Marzo 2014, 12:49
¿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...
Título: Re:imprimir un form completo en visual basic 2010
Publicado por: taliban en 31 de Marzo 2014, 23:58
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
Título: Re:imprimir un form completo en visual basic 2010
Publicado por: Ogramar en 01 de Abril 2014, 16:54
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:

Código: [Seleccionar]
    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.