none
Error al generar pie de pagina con iTextSharp

    Debate general

  • Hola Estoy realizando un reporte con iTextsharp, soy nuevo en esto y todo iba bien hasta el momento en que tuve que generar el encabezado y pie de pagina. Logre resolver el problema con el encabezado pero el pie de pagina me sigue dando problemas. Al ejecutar la aplicacion me marca el siguiente error: Excepción no controlada del tipo 'System.StackOverflowException' en itextsharp.dll. Anexo el codigo que estoy utilizando. Alguien me podria ayudar a resolverlo por favor.. Gracias!!

    Public Class itsEvents

        Inherits PdfPageEventHelper
        Public Overrides Sub OnStartPage(ByVal writer As iTextSharp.text.pdf.PdfWriter, ByVal docume As iTextSharp.text.Document)
            Dim imagen As iTextSharp.text.Image 'declaración de imagen
            Dim textdwn As Font = FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD)
            Dim Tcabecera As New PdfPTable(3) 'tabla  para cabecera
            Dim Ttitulo As New PdfPTable(6) 'tabla para el titulo y datos generales
            Dim salto As Font = FontFactory.GetFont(FontFactory.HELVETICA, 6)
            Dim saltoF As Font = FontFactory.GetFont(FontFactory.HELVETICA, 6, Font.BOLD)
            Dim fchica As Font = FontFactory.GetFont(FontFactory.HELVETICA, 8, Font.BOLD)
            Dim Ftitulo As Font = FontFactory.GetFont(FontFactory.TIMES, 14, Font.BOLD)



            'Agregar escabezado, el que queramos 
            imagen = iTextSharp.text.Image.GetInstance("C:\Users\marco\Dropbox\SoftwareITSCH\Images\encabezado2.jpg") 'nombre y ruta de la imagen a insertar
            imagen.ScalePercent(35) 'escala al tamaño de la imagen
            imagen.Alignment = iTextSharp.text.Image.ALIGN_CENTER




            'PARTE SUPERIOR DEL DOCUMENTO (MEMBRETADO, FECHA Y DATOS GENERALES)
            Tcabecera.WidthPercentage = 100
            Dim anchoTcabecera() As Single = {1, 98, 1}
            Tcabecera.SetWidths(anchoTcabecera)

            Dim margen As New PdfPCell(New Phrase(" ", salto))
            margen.Colspan = 3
            margen.BorderWidth = 0
            Tcabecera.AddCell(margen)

            Dim espacio As New PdfPCell(New Phrase(" "))
            espacio.Colspan = 1
            espacio.BorderWidth = 0
            Tcabecera.AddCell(espacio)

            Dim img As New PdfPCell(imagen)
            img.HorizontalAlignment = Element.ALIGN_CENTER
            img.BorderWidth = 0
            Tcabecera.AddCell(img)

            Tcabecera.AddCell(espacio)

            Ttitulo.WidthPercentage = 100
            Dim anchoTtitulo() As Single = {1, 28, 45, 10, 15, 1}
            Ttitulo.SetWidths(anchoTtitulo)

            Dim saltoTitulo As New PdfPCell(New Phrase(" ", salto))
            saltoTitulo.Colspan = 6
            saltoTitulo.BorderWidth = 0
            Ttitulo.AddCell(saltoTitulo)

            Ttitulo.AddCell(espacio)
            Ttitulo.AddCell(espacio)
            Ttitulo.AddCell(espacio)
            Dim Memb As New PdfPCell(New Phrase("TECNOLOGICO NACIONAL DE MEXICO" + vbCrLf + "Instituto Tecnológico Superior de Ciudad Hidalgo.", fchica))
            Memb.Colspan = 2
            Memb.BorderWidth = 0
            Memb.HorizontalAlignment = Element.ALIGN_CENTER
            Ttitulo.AddCell(Memb)
            Ttitulo.AddCell(espacio)

            Ttitulo.AddCell(espacio)
            Dim Titulo As New PdfPCell(New Phrase("RESGUARDO DE MOBILIARIO, HERRAMIENTAS Y MAQUINARIA ", Ftitulo))
            Titulo.Colspan = 4
            Titulo.BorderWidth = 0
            Titulo.HorizontalAlignment = Element.ALIGN_CENTER
            Ttitulo.AddCell(Titulo)
            Ttitulo.AddCell(espacio)

            Dim saltoL As New PdfPCell(New Phrase(" ", salto))
            saltoL.Colspan = 6
            saltoL.BorderWidth = 0
            Ttitulo.AddCell(saltoL)


            Ttitulo.AddCell(espacio)
            Dim Dependencia As New PdfPCell(New Phrase("DEPENDENCIA O ENTIDAD: ", textdwn))
            Dependencia.Colspan = 1
            Dependencia.HorizontalAlignment = 1
            Dependencia.BorderWidth = 0
            Ttitulo.AddCell(Dependencia)

            Dim DependenciaV As New PdfPCell(New Phrase(" INSTITUTO TECNOLOGICO SUPERIOR DE CIUDAD HIDALGO", textdwn))
            DependenciaV.Colspan = 1
            DependenciaV.HorizontalAlignment = 1
            DependenciaV.BorderWidth = 1
            Ttitulo.AddCell(DependenciaV)
            Ttitulo.AddCell(espacio)
            Ttitulo.AddCell(espacio)
            Ttitulo.AddCell(espacio)

            Dim espacioF As New PdfPCell(New Phrase(" ", salto))
            espacioF.Colspan = 1
            espacioF.BorderWidth = 0

            Ttitulo.AddCell(espacioF)
            Ttitulo.AddCell(espacioF)
            Ttitulo.AddCell(espacioF)
            Ttitulo.AddCell(espacioF)
            Dim Tfecha As New PdfPTable(3) 'tabla  para la fecha
            Dim Dia As New PdfPCell(New Phrase("DÍA", saltoF))
            Dia.Colspan = 1
            Dia.HorizontalAlignment = Element.ALIGN_CENTER
            Dia.BorderWidth = 1
            Dia.BackgroundColor = BaseColor.GRAY
            Tfecha.AddCell(Dia)
            Dim Mes As New PdfPCell(New Phrase("MES", saltoF))
            Mes.Colspan = 1
            Mes.HorizontalAlignment = Element.ALIGN_CENTER
            Mes.BorderWidth = 1
            Mes.BackgroundColor = BaseColor.GRAY
            Tfecha.AddCell(Mes)
            Dim year As New PdfPCell(New Phrase("AÑO", saltoF))
            year.Colspan = 1
            year.HorizontalAlignment = Element.ALIGN_CENTER
            year.BorderWidth = 1
            year.BackgroundColor = BaseColor.GRAY
            Tfecha.AddCell(year)

            Dim casteo As New PdfPCell((Tfecha))
            casteo.Colspan = 1
            casteo.BorderWidth = 0

            Ttitulo.AddCell(casteo)
            Ttitulo.AddCell(espacioF)


            Ttitulo.AddCell(espacio)
            Dim AreaAdmin As New PdfPCell(New Phrase("ÁREA ADMINISTRATIVA: ", textdwn))
            AreaAdmin.Colspan = 1
            AreaAdmin.HorizontalAlignment = 1
            AreaAdmin.BorderWidth = 0
            Ttitulo.AddCell(AreaAdmin)

            Dim AreaAdminv As New PdfPCell(New Phrase(" DIVISION DE SISTEMAS", textdwn))
            AreaAdminv.Colspan = 1
            AreaAdminv.HorizontalAlignment = 1
            AreaAdminv.BorderWidth = 1
            Ttitulo.AddCell(AreaAdminv)
            Ttitulo.AddCell(espacio)



            Dim TfechaV As New PdfPTable(3) 'tabla  para la fecha
            Dim DiaV As New PdfPCell(New Phrase(DateTime.Now.Day, textdwn))
            DiaV.Colspan = 1
            DiaV.HorizontalAlignment = Element.ALIGN_CENTER
            DiaV.BorderWidth = 1
            DiaV.BackgroundColor = BaseColor.WHITE
            TfechaV.AddCell(DiaV)
            Dim MesV As New PdfPCell(New Phrase(DateTime.Now.Month, textdwn))
            MesV.Colspan = 1
            MesV.HorizontalAlignment = Element.ALIGN_CENTER
            MesV.BorderWidth = 1
            MesV.BackgroundColor = BaseColor.WHITE
            TfechaV.AddCell(MesV)
            Dim yearV As New PdfPCell(New Phrase(DateTime.Now.Year, textdwn))
            yearV.Colspan = 1
            yearV.HorizontalAlignment = Element.ALIGN_CENTER
            yearV.BorderWidth = 1
            yearV.BackgroundColor = BaseColor.WHITE
            TfechaV.AddCell(yearV)

            Dim casteoV As New PdfPCell((TfechaV))
            casteo.Colspan = 1
            casteo.BorderWidth = 0

            Ttitulo.AddCell(casteoV)
            Ttitulo.AddCell(espacio)

            Ttitulo.AddCell(saltoL)

            docume.Add(Tcabecera)
            docume.Add(Ttitulo)
        End Sub

        Public Overrides Sub OnEndPage(ByVal writer As iTextSharp.text.pdf.PdfWriter, ByVal archivo As iTextSharp.text.Document)
            Dim Tpie As New PdfPTable(7) 'tabla para el pie de pagina
            Dim textdwn As Font = FontFactory.GetFont(FontFactory.HELVETICA, 10, Font.BOLD)
            Dim fntBoldRoja As Font = FontFactory.GetFont(FontFactory.TIMES, 9, Font.BOLD, New BaseColor(250, 0, 0))


            Dim espacio As New PdfPCell(New Phrase(" "))
            espacio.Colspan = 1
            espacio.BorderWidth = 0

            Tpie.AddCell(espacio)
            Tpie.AddCell(espacio)
            Tpie.AddCell(espacio)
            Tpie.AddCell(espacio)
            Tpie.AddCell(espacio)
            Tpie.AddCell(espacio)
            Tpie.AddCell(espacio)

            Tpie.WidthPercentage = 100
            Dim anchoPie() As Single = {1, 22, 22, 22, 22, 10, 1}
            Tpie.SetWidths(anchoPie)

            Tpie.AddCell(espacio)
            Dim nota As New PdfPCell(New Phrase("NOTA: EL RESGUARDANTE ES RESPONSABLE DEL BIEN Y DEL BUEN USO DE ÉSTE, Y EN CASO DE ROBO, DAÑO O PÉRDIDA DEBERÁ REPONER DICHO BIEN POR UNO IGUAL O DE MEJOR CALIDAD." & vbCrLf & "LOS BIENES DESCRITOS EN EL RESGUARDO SEGUIRÁNSIENDO DE LA RESPONSABILIDAD DEL QUE RECIBE, AÚN Y CUANDO LOS BIENES ENCONTRARAN BAJO LA CUSTODIA DE OTRA PERSONA.", fntBoldRoja))
            nota.Colspan = 5
            nota.BorderWidth = 1
            nota.HorizontalAlignment = Element.ALIGN_JUSTIFIED
            nota.VerticalAlignment = Element.ALIGN_MIDDLE
            Tpie.AddCell(nota)
            Tpie.AddCell(espacio)

            Tpie.AddCell(espacio)



            Dim resg As New PdfPCell(New Phrase("RESGUARDANTE", textdwn))
            resg.Colspan = 1
            resg.BorderWidth = 1
            resg.HorizontalAlignment = Element.ALIGN_CENTER
            resg.VerticalAlignment = Element.ALIGN_MIDDLE
            resg.BackgroundColor = BaseColor.GRAY
            Tpie.AddCell(resg)


            Dim vobo As New PdfPCell(New Phrase("VO.BO", textdwn))
            vobo.Colspan = 1
            vobo.BorderWidth = 1
            vobo.HorizontalAlignment = Element.ALIGN_CENTER
            vobo.VerticalAlignment = Element.ALIGN_MIDDLE
            vobo.BackgroundColor = BaseColor.GRAY
            Tpie.AddCell(vobo)


            Dim revisa As New PdfPCell(New Phrase("REVISA", textdwn))
            revisa.Colspan = 1
            revisa.BorderWidth = 1
            revisa.HorizontalAlignment = Element.ALIGN_CENTER
            revisa.VerticalAlignment = Element.ALIGN_MIDDLE
            revisa.BackgroundColor = BaseColor.GRAY
            Tpie.AddCell(revisa)

            Dim autoriza As New PdfPCell(New Phrase("AUTORIZA", textdwn))
            autoriza.Colspan = 1
            autoriza.BorderWidth = 1
            autoriza.HorizontalAlignment = Element.ALIGN_CENTER
            autoriza.VerticalAlignment = Element.ALIGN_MIDDLE
            autoriza.BackgroundColor = BaseColor.GRAY
            Tpie.AddCell(autoriza)


            Dim hoja As New PdfPCell(New Phrase("HOJA", textdwn))
            hoja.Colspan = 1
            hoja.BorderWidth = 1
            hoja.HorizontalAlignment = Element.ALIGN_CENTER
            hoja.VerticalAlignment = Element.ALIGN_MIDDLE
            hoja.BackgroundColor = BaseColor.GRAY
            Tpie.AddCell(hoja)
            Tpie.AddCell(espacio)


            archivo.Add(Tpie) <----- aqui me marca el error
        End Sub
    End Class

    De antemano muchas gracias por su tiempo y colaboracion.

    martes, 11 de octubre de 2016 4:17