mayoría de los ejemplos se refieren a una versión anterior de iTextSharp. Para la versión 5+ de iTextSharp (que supongo que está utilizando), se ha eliminado la propiedad/el objeto HeaderFooter.
Ver http://itextpdf.com/history/?branch=50&node=500 (última línea)
Para agregar un encabezado/pie ahora se debe utilizar PageEvents. El siguiente código demuestra cómo hacer esto en VB. Básicamente, debe heredar la clase PageEventsHelper y observar el evento OnStartPage, luego agregue su código según sea necesario.
Imports iTextSharp.text.pdf
Imports iTextSharp.text
Imports System.IO
Module Module1
Sub Main()
Dim pdfDoc As New Document()
Dim pdfWrite As PdfWriter = PdfWriter.GetInstance(pdfDoc, New FileStream("tryme2.pdf", FileMode.Create))
Dim ev As New itsEvents
pdfWrite.PageEvent = ev
pdfDoc.Open()
pdfDoc.Add(New Paragraph("Hello World"))
pdfDoc.NewPage()
pdfDoc.Add(New Paragraph("Hello World Again"))
pdfDoc.Close()
End Sub
End Module
Public Class itsEvents
Inherits PdfPageEventHelper
Public Overrides Sub OnStartPage(ByVal writer As iTextSharp.text.pdf.PdfWriter, ByVal document As iTextSharp.text.Document)
Dim ch As New Chunk("This is my Stack Overflow Header on page " & writer.PageNumber)
document.Add(ch)
End Sub
End Class
En un principio parece más trabajo, pero tiene el aspecto positivo que se puede agregar más a su encabezado/pie de sólo texto sin formato. Ahora puede, por ejemplo, agregar fácilmente cualquier cosa que soporte el documento.
Esa fue una publicación muy útil. Pero he agregado un párrafo que es muy grande y tomará alrededor de 2-3 páginas antes de escribir un código para 'Newpage()'. Entonces, el encabezado no se aplicará a todas las páginas. cómo manejar tal caso. Gracias de antemano – suryakiran
Ha pasado un tiempo desde que jugué con iTextSharp, pero creo que verá que su encabezado se aplicará a todas las páginas. Con mi ejemplo anterior, estoy forzando una nueva página con pdfDoc.NewPage(), pero si agrega un párrafo que abarca más de una página, iTextSharp creará automáticamente una página nueva que hará que se active OnStartPage. – CResults
No. Lo he intentado, no funciona para mí. Pero interesante, encontré que 'OnEndPage (escritor PdfWriter, documento de documento) 'se activa cada vez que la página finaliza, pero no' OnStartPage (escritor PdfWriter, documento de documento) 'cuando una página se crea automáticamente. Parece que debería haber un cambio en el código de OnStartPage a OnEndPage. – suryakiran