locked
problema con impresion RRS feed

  • Pregunta

  • tengo problemas con el siguiente codigo:
     Private Sub Print_Click(ByVal sender As System.Object, ByVal e 
    As System.EventArgs) Handles Print.Click
    
            'instrucciones para determinar la impresion del documento 
            PrintDialog.Document = PrintDocument
            Dim result As DialogResult = PrintDialog.ShowDialog
    
            If (result = Windows.Forms.DialogResult.OK) Then
                PrintDocument.Print()
            End If
    
    End Sub

    lo que hace dicho metodo es mostrame un cuadro de dialogo para configurar la impresion de un archivo txt que tengo, pero dentro del  cuadro me aparecen desabilitadas varias opciones , y cuando le doy impimir la impresora tira la hoja en blanco como si no hubieran letras que imprimir, les comento que dicho txt lo tengo en un RichTextbox y necesito imprimir esos datos

    me podrian ayudar.

    saludos

     

    sábado, 10 de abril de 2010 14:35

Respuestas

  • hola

    pero estas definiendo algun codigo en el evento PrintPage del PrintDocument

    mira este link


    veras que al rpesionar el boton abre un archivo de texto, que luego usa en el evento PrintPag, usando ev.Graphics.DrawString para indicar la liena que envia a impresion

    esto que visualzias alli lo estas haciendo ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Melvindev lunes, 12 de abril de 2010 11:40
    • Marcado como respuesta jtorrecillaModerator miércoles, 6 de octubre de 2010 14:18
    sábado, 10 de abril de 2010 14:46
  • Hola.

    para poder imprimir el richtextbox tendrias que mandar a dibujar las lineas en la function Drawstring de la clase graphics

    corre el siguiente codigo en un formulario diferente .

    pega el siguiente codigo

     

     

        Friend WithEvents PrintDialog1 As System.Windows.Forms.PrintDialog
        Friend WithEvents Button1 As System.Windows.Forms.Button
        Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
        Friend WithEvents PrintDocument1 As System.Drawing.Printing.PrintDocument
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If Me.PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    
                Me.PrintDocument1.Print()
    
            End If
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '
            Me.PrintDialog1 = New System.Windows.Forms.PrintDialog
            Me.Button1 = New System.Windows.Forms.Button
            Me.RichTextBox1 = New System.Windows.Forms.RichTextBox
            Me.PrintDocument1 = New System.Drawing.Printing.PrintDocument
            Me.SuspendLayout()
            '
            'PrintDialog1
            '
            Me.PrintDialog1.UseEXDialog = True
            '
            'Button1
            '
            Me.Button1.Location = New System.Drawing.Point(-1, 218)
            Me.Button1.Name = "Button1"
            Me.Button1.Size = New System.Drawing.Size(75, 23)
            Me.Button1.TabIndex = 0
            Me.Button1.Text = "Print"
            Me.Button1.UseVisualStyleBackColor = True
            '
            'RichTextBox1
            '
            Me.RichTextBox1.Location = New System.Drawing.Point(-1, 2)
            Me.RichTextBox1.Name = "RichTextBox1"
            Me.RichTextBox1.Size = New System.Drawing.Size(257, 210)
            Me.RichTextBox1.TabIndex = 1
            Me.RichTextBox1.Text = "Echale ojo a esta linea de codigo" & vbNewLine & "en el evento print page del printdocument " & vbNewLine & " e.Graphics.DrawString(Me.RichTextBox1.Text, Me.RichTextBox1.Font, Brushes.Fuchsia, 10, 10) "
    
    
            '
            'PrintDocument1
            '
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(257, 242)
            Me.Controls.Add(Me.RichTextBox1)
            Me.Controls.Add(Me.Button1)
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.ResumeLayout(False)
    
    
    
            'usa la impresoara que el usuario elija en el cuadro de dialogo
            Me.PrintDocument1.PrinterSettings.PrinterName = Me.PrintDialog1.PrinterSettings.PrinterName
            'imprimira el documento Me.PrintDocument1
            Me.PrintDialog1.Document = Me.PrintDocument1
        End Sub
    
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            'imprimra el contenido del RichTextBox1 
            e.Graphics.DrawString(Me.RichTextBox1.Text, Me.RichTextBox1.Font, Brushes.Fuchsia, 10, 10)
    
        End Sub

     

     

     

    ejecuta el programa y veras el texto que aparece lo puedes sutituir al que quieras

    preciona el boton Print del Form1 y te aparecera el cuadro de dialogo.

    Elije una impresora el cual quieras usar para imprimir y preciona imprimir en el cuadro de dialogo y listo.

     

    y asi espero analices un poco esto ya que requier un poco de logica en las locaciones que dibujaras el texto en la pagina.

    Espero te ayude mi comentario y si ayuda lo marques como respouesta valida. y votes por el.

     

     

    Gracias.


    Mark the better answers for you,do not turn off your mind

    Visit http://www.melvinsofts.com

    • Propuesto como respuesta Melvindev lunes, 12 de abril de 2010 11:40
    • Marcado como respuesta jtorrecillaModerator miércoles, 6 de octubre de 2010 14:18
    domingo, 11 de abril de 2010 19:22

Todas las respuestas

  • hola

    pero estas definiendo algun codigo en el evento PrintPage del PrintDocument

    mira este link


    veras que al rpesionar el boton abre un archivo de texto, que luego usa en el evento PrintPag, usando ev.Graphics.DrawString para indicar la liena que envia a impresion

    esto que visualzias alli lo estas haciendo ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Propuesto como respuesta Melvindev lunes, 12 de abril de 2010 11:40
    • Marcado como respuesta jtorrecillaModerator miércoles, 6 de octubre de 2010 14:18
    sábado, 10 de abril de 2010 14:46
  • This Message has been Edited please see the next Message Replied

    • Propuesto como respuesta Melvindev domingo, 11 de abril de 2010 16:48
    • Editado Melvindev domingo, 11 de abril de 2010 19:24 Edited By Bad Format
    • Votado como útil jtorrecillaModerator miércoles, 6 de octubre de 2010 14:18
    domingo, 11 de abril de 2010 14:51
  • Hola.

    para poder imprimir el richtextbox tendrias que mandar a dibujar las lineas en la function Drawstring de la clase graphics

    corre el siguiente codigo en un formulario diferente .

    pega el siguiente codigo

     

     

        Friend WithEvents PrintDialog1 As System.Windows.Forms.PrintDialog
        Friend WithEvents Button1 As System.Windows.Forms.Button
        Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
        Friend WithEvents PrintDocument1 As System.Drawing.Printing.PrintDocument
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If Me.PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    
                Me.PrintDocument1.Print()
    
            End If
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '
            Me.PrintDialog1 = New System.Windows.Forms.PrintDialog
            Me.Button1 = New System.Windows.Forms.Button
            Me.RichTextBox1 = New System.Windows.Forms.RichTextBox
            Me.PrintDocument1 = New System.Drawing.Printing.PrintDocument
            Me.SuspendLayout()
            '
            'PrintDialog1
            '
            Me.PrintDialog1.UseEXDialog = True
            '
            'Button1
            '
            Me.Button1.Location = New System.Drawing.Point(-1, 218)
            Me.Button1.Name = "Button1"
            Me.Button1.Size = New System.Drawing.Size(75, 23)
            Me.Button1.TabIndex = 0
            Me.Button1.Text = "Print"
            Me.Button1.UseVisualStyleBackColor = True
            '
            'RichTextBox1
            '
            Me.RichTextBox1.Location = New System.Drawing.Point(-1, 2)
            Me.RichTextBox1.Name = "RichTextBox1"
            Me.RichTextBox1.Size = New System.Drawing.Size(257, 210)
            Me.RichTextBox1.TabIndex = 1
            Me.RichTextBox1.Text = "Echale ojo a esta linea de codigo" & vbNewLine & "en el evento print page del printdocument " & vbNewLine & " e.Graphics.DrawString(Me.RichTextBox1.Text, Me.RichTextBox1.Font, Brushes.Fuchsia, 10, 10) "
    
    
            '
            'PrintDocument1
            '
            '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
            Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            Me.ClientSize = New System.Drawing.Size(257, 242)
            Me.Controls.Add(Me.RichTextBox1)
            Me.Controls.Add(Me.Button1)
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.ResumeLayout(False)
    
    
    
            'usa la impresoara que el usuario elija en el cuadro de dialogo
            Me.PrintDocument1.PrinterSettings.PrinterName = Me.PrintDialog1.PrinterSettings.PrinterName
            'imprimira el documento Me.PrintDocument1
            Me.PrintDialog1.Document = Me.PrintDocument1
        End Sub
    
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            'imprimra el contenido del RichTextBox1 
            e.Graphics.DrawString(Me.RichTextBox1.Text, Me.RichTextBox1.Font, Brushes.Fuchsia, 10, 10)
    
        End Sub

     

     

     

    ejecuta el programa y veras el texto que aparece lo puedes sutituir al que quieras

    preciona el boton Print del Form1 y te aparecera el cuadro de dialogo.

    Elije una impresora el cual quieras usar para imprimir y preciona imprimir en el cuadro de dialogo y listo.

     

    y asi espero analices un poco esto ya que requier un poco de logica en las locaciones que dibujaras el texto en la pagina.

    Espero te ayude mi comentario y si ayuda lo marques como respouesta valida. y votes por el.

     

     

    Gracias.


    Mark the better answers for you,do not turn off your mind

    Visit http://www.melvinsofts.com

    • Propuesto como respuesta Melvindev lunes, 12 de abril de 2010 11:40
    • Marcado como respuesta jtorrecillaModerator miércoles, 6 de octubre de 2010 14:18
    domingo, 11 de abril de 2010 19:22
  • ¡Hola!

    ¿Fue posible solucionar su problema?

    ¡Gracias!
    Rafael Fagundes - Marque la respuesta como correcta si te ha sido de utilidad!
    domingo, 25 de abril de 2010 18:59
    Moderador