La maggior parte degli esempi si riferisce a una versione precedente di iTextSharp. Per la versione 5+ di iTextSharp (che presumo tu stia utilizzando) la proprietà/oggetto HeaderFooter è stata rimossa.
Vedi http://itextpdf.com/history/?branch=50&node=500 (ultima riga)
Per aggiungere intestazioni/piè di pagina ora è necessario utilizzare PageEvents. Il seguente codice mostra come eseguire ciò in VB. In pratica devi ereditare la classe PageEventsHelper e guardare l'evento OnStartPage, quindi aggiungere il codice se necessario.
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
Sembra inizialmente come più lavoro, ma ha la testa che si può aggiungere di più per l'intestazione/piè di pagina di solo testo. Ad esempio, ora puoi aggiungere facilmente tutto ciò che Document supporta.
Questo è stato un post molto utile. Ma ho aggiunto un paragrafo che è molto grande e ci vorranno circa 2-3 pagine prima di scrivere un codice per 'Newpage()'. Quindi l'intestazione non verrà applicata per tutte le pagine. come gestire tale caso. Grazie in anticipo – suryakiran
È da un po 'che non gioco con iTextSharp, ma penso che troverai che la tua intestazione sarà applicata a tutte le pagine. Con il mio esempio sopra sto forzando una nuova pagina con pdfDoc.NewPage() ma se aggiungi un paragrafo che si estende su più di una pagina viene creata automaticamente una nuova pagina per te da iTextSharp che causa l'attivazione di OnStartPage. – CResults
No. Ho appena provato, non funziona per me. Ma interessante, ho trovato che 'OnEndPage (PdfWriter writer, Document document)' viene attivato ogni volta che la pagina è terminata ma non 'OnStartPage (PdfWriter writer, Document document)' quando una pagina viene creata automaticamente. Sembra che ci dovrebbe essere un cambiamento nel codice da OnStartPage a OnEndPage. – suryakiran