none
impresion mas de una pagina RRS feed

  • Pregunta

  • Hola buenos dias, disculpen la molestia, pero por mas que he intentado no he podido solucionar mi problema. Lo que pasa es que al momento de mandar a imprimir, solo me muestra la primera pagina en indefinidas veces, y se convierte en bucle. Ya he intentado poner e.hasmorepages, pero no consigo que me muestre las demas paginas, asi como mucho menos imprimir. Alguien podria auxiliarme porfavor?..

    este es mi codigo:


            '********** LISTA DE ALUMNOS    ************************

            Dim pagina As Integer = 1
            Dim i, z, m, n, o As Integer
            Dim dt As New DataTable()
            Dim fuente As System.Drawing.Font
            Dim fuente2 As System.Drawing.Font
            sql = "SELECT Mat,Nombre,Apellidopaterno,ApellidoMaterno FROM alumnos WHERE Nivel='" & ComboBox1.Text & "' and Grado='" & TextBox1.Text & "' and Grupo='" & TextBox2.Text & "'"
            Dim dataAdapter As New OleDb.OleDbDataAdapter(sql, conex)
            dataAdapter.Fill(dt)
            dataAdapter.Dispose()
            fuente = New System.Drawing.Font("Arial", 6, FontStyle.Regular)
            fuente2 = New System.Drawing.Font("Arial", 8, FontStyle.Regular)


            z = 0
            m = 116
            n = 170
            o = 150


            For i = 0 To dt.Rows.Count - 1



                e.Graphics.DrawString(CStr(dt.Rows(i)("Mat")), fuente, Brushes.Gray, 255, m)
                e.Graphics.DrawString(CStr(dt.Rows(i)("Apellidopaterno") & (" ") & dt.Rows(i)("Apellidomaterno")), fuente2, Brushes.Black, 150, n)
                e.Graphics.DrawString(CStr(dt.Rows(i)("Nombre")), fuente2, Brushes.Black, 150, o)


                Dim text1 As String = "El pase de salida debe de permanecer en buenas condiciones, la primera vez de su elaboración no tendra ningun costo. Pero su es maltratado, sera retirado y tendrá que solicitar uno nuevo. " &
                "Costo de la reposición: $35.00. " &
                "Si hace mal uso de el, como prestarlo o tratar de engañar a los profesores de guardia, se le castigara una semana, por lo tanto no podrá salir solo, y algún adulto tendra que venir por el. La sanción va desde una semana hasta retirarse definitivamente." &
                "Solo se permitirá en dos ocaciones se le olvide el pase, si existe una tercera, los papás tendran que venir por el alumno(a) durante una semana o según la sanción, la cuál podriá ser que se le retire de forma definitiva."

                Dim font1 As New Font("Arial", 8, FontStyle.Italic, GraphicsUnit.Point)
                Try
                    Dim rect1 As New Rectangle(408, z + 70, 340, 203)

                    ' Create a StringFormat object with the each line of text, and the block
                    ' of text centered on the page.
                    Dim stringFormat As New StringFormat()
                    stringFormat.Alignment = StringAlignment.Center
                    stringFormat.LineAlignment = StringAlignment.Center

                    ' Draw the text and the surrounding rectangle.
                    e.Graphics.DrawString(text1, font1, Brushes.Black, rect1, stringFormat)
                    ' e.Graphics.DrawRectangle(Pens.Red, rect1)
                Finally
                    font1.Dispose()
                End Try


                'Medidas de la credencial (Un lado < 3.375 in * 2.125 in >) dos lados ( 6.75 in * 2.125 in >)

                Dim black As New Pen(Color.Black, 1)
                Dim b As Integer


                b = 70 + z

                e.Graphics.DrawRectangle(black, 70, b, 676, 213)

                Dim p1 As New Point(408, z + 70)
                Dim p2 As New Point(408, z + 75)
                Dim dashValues As Single() = {1, 1, 1, 1}
                black.DashPattern = dashValues

                'Construcción (Nombre del picture box, coordenada en X, coordenada en Y, ancho, alto)
                Dim a As Integer

                a = 80 + z

                e.Graphics.DrawImage(PictureBox1.Image, 80, a, 40, 50) 'Imprime la imagen contenida en un picture box



                ' Nombre del Instituto

                e.Graphics.DrawString("INSTITUTO BENAVENTE QUERÉTARO", New Font("arial", 8, FontStyle.Regular),
                                            Brushes.Blue, e.MarginBounds.Left + 60, e.MarginBounds.Top + z - 18)

                'Dirección del instituto
                If ComboBox1.Text = "secundaria" Then

                    e.Graphics.DrawString("Secundaria: 22PES0068N", New Font("", 6, FontStyle.Regular),
                                            Brushes.Gray, e.MarginBounds.Left + 106, e.MarginBounds.Top - 5 + z)

                Else

                    e.Graphics.DrawString("Primaria: 22PPR0096Q", New Font("", 6, FontStyle.Regular),
                                            Brushes.Gray, e.MarginBounds.Left + 106, e.MarginBounds.Top - 5 + z)

                End If



                e.Graphics.DrawString("Ciclo escolar: " & ce, New Font("", 6, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left + 99, e.MarginBounds.Top + 6 + z)

                e.Graphics.DrawString("Matricula: ", New Font("", 6, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left + 117, e.MarginBounds.Top + 17 + z)

                e.Graphics.DrawString("Nombre: ", New Font("", 8, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left, e.MarginBounds.Top + 50 + z)


                e.Graphics.DrawString("Grado: " & TextBox1.Text, New Font("", 8, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left, e.MarginBounds.Top + 90 + z)

                e.Graphics.DrawString("Grupo: " & TextBox2.Text, New Font("", 8, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left + 50, e.MarginBounds.Top + 90 + z)
                Dim c As Integer

                c = 140 + z



                e.Graphics.DrawLine(Pens.Black, New Point(120, 245 + z), New Point(320, 245 + z))

                e.Graphics.DrawString("Profa.: Gladys Carrillo Escobar", New Font("", 6, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left + 55, e.MarginBounds.Top + 150 + z)
                e.Graphics.DrawString("Directora", New Font("", 6, FontStyle.Regular),
                                    Brushes.Gray, e.MarginBounds.Left + 93, e.MarginBounds.Top + 162 + z)



                Try


                    Dim v, w As String
                    v = My.Application.Info.DirectoryPath
                    w = (v & "\Ciclo Actual\Fotos\" & (dt.Rows(i)("Mat")) & ".jpg")
                    Dim imagefile As Image = Image.FromFile(w)
                    Dim newGraphics As Graphics = Graphics.FromImage(imagefile)
                    'newGraphics.FillRectangle(New SolidBrush(Color.Black), 100, 200, 70, 90)

                    e.Graphics.DrawImage(imagefile, 320, c, 70, 90) 'Imprime la foto contenida en un picture box
                    newGraphics.Dispose()


                Catch ex As Exception

                    GoTo continuar

                End Try



    continuar:


                z = z + 260
                m = m + 260
                n = n + 260
                o = o + 260

    ' Segun yo aqui va el codigo...

    if i < dt.rows.count then

    e.hasmorepages=true

    else

    e.hasmorepages=false

            Next

    De antemano muchas gracias.............

    jueves, 29 de septiembre de 2016 10:55

Respuestas