Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Salto de pagina con Printdocument en vb.net

Estas en el tema de Salto de pagina con Printdocument en vb.net en el foro de .NET en Foros del Web. Hola, tengo que imprimir un informe con imagenes y la mejor forma que encontre fue con printdocument, pero me imprime solo la primera pagina. este ...
  #1 (permalink)  
Antiguo 17/06/2015, 18:43
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
Salto de pagina con Printdocument en vb.net

Hola, tengo que imprimir un informe con imagenes y la mejor forma que encontre fue con printdocument, pero me imprime solo la primera pagina.
este es el script.
Código vb:
Ver original
  1. Private Sub print1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles print1.PrintPage
  2.         Dim c, cc, desx, desy, pag As Integer
  3.         Dim Ini As CIniClass
  4.         Dim newImage As Image
  5.         Dim ulCorner As Point
  6.         Dim urCorner As Point
  7.         Dim llCorner As Point
  8.         'Dim TamaoPersonal As Printing.PaperSize
  9.        'Dim Ancho As Short
  10.        'Dim Alto As Short
  11.        e.Graphics.PageUnit = GraphicsUnit.Millimeter
  12.         'Ancho = 210
  13.        'Alto = 297
  14.        'TamaoPersonal = New Printing.PaperSize("A4", Ancho, Alto)
  15.        '
  16.        desx = 10
  17.         desy = 20
  18.         Dim destPara As Point() = {ulCorner, urCorner, llCorner}
  19.         Ini = New CIniClass
  20.         c = 0
  21.         cc = 0
  22.         e.Graphics.DrawString("Productos Faltantes de " & cboTMP.Text, New Font("Arial", 18, FontStyle.Regular), Brushes.Black, 5, 5)
  23.         While Me.lvwFaltante.Items.Count > c
  24.             newImage = Image.FromFile(Me.lvwFaltante.Items(c).SubItems(4).Text)
  25.             ulCorner = New Point(1 + desx, desy)
  26.             urCorner = New Point(30 + desx, desy)
  27.             llCorner = New Point(1 + desx, desy + 26)
  28.             destPara = {ulCorner, urCorner, llCorner}
  29.             ' Draw image to screen.
  30.            e.Graphics.DrawImage(newImage, destPara)
  31.             e.Graphics.DrawString(Me.lvwFaltante.Items(c).SubItems(0).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy)
  32.             e.Graphics.DrawString(Me.lvwFaltante.Items(c).SubItems(1).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy + 5)
  33.             e.Graphics.DrawString(Me.lvwFaltante.Items(c).SubItems(3).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy + 10)
  34.  
  35.             If (cc / 2) = Int((cc / 2)) Then
  36.                 desx = 95
  37.             Else
  38.                 desx = 10
  39.                 desy = (desy + 28)
  40.             End If
  41.             If cc > 18 Then
  42.                 pag = pag + 1
  43.                 e.Graphics.DrawString("Pagina: " & pag, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx, desy + 40)
  44.                 e.HasMorePages = True
  45.                 cc = 1
  46.                 'desx = 10
  47.                'desy = 20
  48.                'e.HasMorePages = False
  49.            Else
  50.                 e.HasMorePages = False
  51.                 cc = cc + 1
  52.             End If
  53.             c = c + 1
  54.         End While
  55.         'e.HasMorePages = False
  56.    End Sub
lo imprime, incluso las imágenes, pero solo la primera pagina.
les captura de lo que imprime en archivo.

no se por que no salta la pagina!!!
Gracias
  #2 (permalink)  
Antiguo 22/06/2015, 09:58
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
Respuesta: Salto de pagina con Printdocument en vb.net

Nadie puede ayudarme para ver como soluciono esto???
  #3 (permalink)  
Antiguo 22/06/2015, 12:51
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
Respuesta: Salto de pagina con Printdocument en vb.net

Estoy dispuesto a pagar por la ayuda.
  #4 (permalink)  
Antiguo 29/06/2015, 11:10
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
Respuesta: Salto de pagina con Printdocument en vb.net

Lo solucione asi.
Lo dejo por si a alguien le sirve.
Código vb:
Ver original
  1. Private Sub print1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles print1.PrintPage
  2.         Dim cc, desx, desy As Integer
  3.         Dim Ini As CIniClass
  4.         Dim auxtxt As String
  5.         Dim newImage As Image
  6.         Dim ulCorner As Point
  7.         Dim urCorner As Point
  8.         Dim llCorner As Point
  9.         e.Graphics.PageUnit = GraphicsUnit.Millimeter
  10.         desx = 10
  11.         desy = 20
  12.         Dim destPara As Point() = {ulCorner, urCorner, llCorner}
  13.         Ini = New CIniClass
  14.         cc = 0
  15.         e.Graphics.DrawString("Productos Faltantes de " & cboTMP.Text, New Font("Arial", 18, FontStyle.Regular), Brushes.Black, 5, 5)
  16.         While Me.lvwFaltante.Items.Count > cp
  17.             If My.Computer.FileSystem.FileExists(Me.lvwFaltante.Items(cp).SubItems(4).Text) Then
  18.                 newImage = Image.FromFile(Me.lvwFaltante.Items(cp).SubItems(4).Text)
  19.  
  20.                 ulCorner = New Point(1 + desx, desy)
  21.                 urCorner = New Point(30 + desx, desy)
  22.                 llCorner = New Point(1 + desx, desy + 26)
  23.                 destPara = {ulCorner, urCorner, llCorner}
  24.                 ' Draw image to screen.
  25.                e.Graphics.DrawImage(newImage, destPara)
  26.             End If
  27.             e.Graphics.DrawString(Me.lvwFaltante.Items(cp).SubItems(0).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy)
  28.             auxtxt = ArreglaTextoP(Me.lvwFaltante.Items(cp).SubItems(1).Text)
  29.             e.Graphics.DrawString(auxtxt, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy + 4)
  30.             e.Graphics.DrawString(Me.lvwFaltante.Items(cp).SubItems(3).Text, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, desx + 32, desy + 22)
  31.  
  32.             If (cc / 2) = Int((cc / 2)) Then
  33.                 desx = 95
  34.             Else
  35.                 desx = 10
  36.                 desy = (desy + 28)
  37.             End If
  38.             If cc > 16 Then
  39.                 pag = pag + 1
  40.                 e.Graphics.DrawString("Pagina: " & pag, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 95, 280)
  41.                 cc = 1
  42.                 desx = 10
  43.                 desy = 20
  44.                 e.HasMorePages = True
  45.                 cp = cp + 1
  46.                 Exit Sub
  47.             Else
  48.                 e.HasMorePages = False
  49.                 cc = cc + 1
  50.             End If
  51.             cp = cp + 1
  52.         End While
  53.         pag = pag + 1
  54.         e.Graphics.DrawString("Pagina: " & pag, New Font("Arial", 11, FontStyle.Regular), Brushes.Black, 95, 280)
  55.     End Sub

Etiquetas: vb
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:39.