Visual Basic.NET - Imprimir con PrintDocument y PrintDialog

 
Vista:

Imprimir con PrintDocument y PrintDialog

Publicado por Diego (20 intervenciones) el 04/06/2008 02:39:00
¡Hola a Todos!
Con VB.NET 2003 realizo los informes para impresión con PrintDocument y PrintDialog. Mi problema es hacer que los datos de configuración seleccionados por el usuario como ser cantidad de copias, selección de hojas, tengan efecto en la impresión final del PrintDocument. Ya que muestro el dialogo de impresión pero los datos seleccionados no se reflejan en la impresión final. A modo de ejemplo les indico como hago la impresión:

Dim prtDialog As New PrintDialog
prtDialog.Document = PrintDocument
prtDialog.AllowSomePages = True
If prtDialog.ShowDialog = DialogResult.OK Then
PrintDocument.Print()
End If

¿Cómo puedo hacer para que la configuración de impresión tenga efecto sobre la impresión?

¡Muchas gracias de antemano!

Saludos

Diego
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Espero Hayudarte con este codigo

Publicado por vicente (1 intervención) el 11/06/2008 18:40:13
Este codigo lo tengo en vb 2005 es algo similar aloque buscas si te sirve as melo saver mi correo es [email protected]

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' Formulario hijo activo
Dim FormHijo As FormFactura = Me

If FormHijo Is Nothing Then Return

'Permitir al usuario elegir el rango de páginas a imprimir.
PrintDialog1.AllowSomePages = True
If (PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK) Then
'Si se pulsó el botón "Aceptar" (OK), entonces imprimir.
Dim texto As String = FormHijo.rtbtext.Text
Dim seps() As Char = {ChrW(10), ChrW(13)} 'LF y CR
línea = Text.Split() 'líneas de texto que hay que imprimir
totalLineasImpresas = 0
PrintDocument1.Print() 'invoca a ImprimirDoc_PrintPage
End If
End Sub

Private Sub ImprimirDoc_PrintPage(ByVal sender As System.Object, ByVal ev As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'Formulario hijo activo
Dim FormHijo As FormFactura = Me

'Insertar aquí el código para procesar la página.

Dim lineasPorPag As Single
Dim pos_Y As Single
Dim margenIzq As Single = ev.MarginBounds.Left
Dim margenSup As Single = ev.MarginBounds.Top

'Calcular el número de líneas por página
Dim fuente As Font = FormHijo.rtbtext.Font
Dim altoFuente As Single = fuente.GetHeight(ev.Graphics)
lineasPorPag = ev.MarginBounds.Height / altoFuente

'Contador de las líneas impresas en una página
Dim lineasImpresasPorPag As Integer = 0
'Imprimir cada una de las líneas
While (totalLineasImpresas < línea.Length And _
lineasImpresasPorPag < lineasPorPag)
Dim totalLineasImpresas As New AccessibleNavigation
pos_Y = margenSup + (lineasImpresasPorPag * altoFuente)
lineasImpresasPorPag += 1
End While

'Si quedan líneas por imprimir, siguiente página
If (totalLineasImpresas < línea.Length) Then
ev.HasMorePages = True
'se invoca de nuevo a ImprimirDoc_PrintPage
ev.HasMorePages = False 'finaliza la impresión
End If
End Sub

Este codigo llama al elemento imprimir para seleccionar la impresora la cantidad de paginas a escrivir a iuna cosa cambia el nombre rtbtext por el nombre del campo que quieras imprimir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Espero Hayudarte con este codigo

Publicado por Diego (20 intervenciones) el 15/06/2008 22:23:52
¡Hola Vicente!
Gracias por responder.
Te agradezco el código. ¡Me viene bien!

Saludos

Diego
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Espero Hayudarte con este codigo

Publicado por alvaro (1 intervención) el 18/05/2012 20:00:47
el codigo sta bien pero como seria en c#???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar