2010-04-08 5 views
10

Ceci est étrange, j'utilise actuellement iTextSharp et je veux ajouter un en-tête & pied de page à mes PDF. Dans tous les exemples, ils créent simplement un nouvel objet HeaderFooter(). Cependant, j'ai toutes les bibliothèques iTextSharp importées mais HeaderFooter n'est pas défini. J'ai utilisé Reflector pour voir si je peux savoir où se trouve la classe et si elle est manquante ?!iTextSharp est manquant classe HeaderFooter

Est-ce que quelqu'un sait ce qu'il est advenu de cette classe?

Répondre

12

La plupart des exemples se réfèrent à une version antérieure d'iTextSharp. Pour la version 5+ d'iTextSharp (que je suppose que vous utilisez), la propriété/l'objet HeaderFooter a été supprimé.

Voir http://itextpdf.com/history/?branch=50&node=500 (dernière ligne)

Pour ajouter en-têtes/pieds de page maintenant, vous devez utiliser PageEvents. Le code suivant montre comment faire cela dans VB. Vous devez essentiellement hériter de la classe PageEventsHelper et surveiller l'événement OnStartPage, puis ajouter votre code si nécessaire. Il ressemble initialement à plus de travail mais a l'avantage que vous pouvez ajouter plus à votre en-tête/pied de page que le texte simple. Vous pouvez maintenant, par exemple, ajouter facilement tout ce que Document peut prendre en charge.

+0

C'était un message très utile. Mais j'ai ajouté un paragraphe qui est très gros et il faudra environ 2-3 pages avant d'écrire un code pour 'Newpage()'. L'en-tête ne sera pas appliqué pour toutes les pages. comment gérer un tel cas. Merci d'avance – suryakiran

+0

Cela fait longtemps que je n'ai pas joué avec iTextSharp mais je pense que vous trouverez que votre en-tête sera appliqué à toutes les pages. Avec mon exemple ci-dessus, je suis en train de forcer une nouvelle page avec pdfDoc.NewPage() mais si vous ajoutez un paragraphe qui s'étend sur plus d'une page, une nouvelle page est créée automatiquement pour vous par iTextSharp provoquant le démarrage d'OnStartPage. – CResults

+1

Non. Je viens d'essayer, ça ne marche pas pour moi. Mais intéressant, j'ai trouvé que 'OnEndPage (écrivain PdfWriter, Document document)' est déclenché chaque fois que la page est terminée, mais pas 'OnStartPage (PdfWriter écrivain, Document document) 'quand une page est créée automatiquement. On dirait qu'il devrait y avoir un changement de code de OnStartPage à OnEndPage. – suryakiran