В iTextSharp отсутствует класс HeaderFooter - PullRequest
12 голосов
/ 08 апреля 2010

Это странно, я сейчас использую iTextSharp и хочу добавить верхний и нижний колонтитулы в мои PDF-файлы. Во всех примерах они просто создают новый объект HeaderFooter (). Тем не менее, у меня есть библиотеки iTextSharp, которые все импортированы, но HeaderFooter не определен. Я использовал Reflector, чтобы узнать, могу ли я узнать, где находится класс и его нет ?!

Кто-нибудь знает, что случилось с этим классом?

1 Ответ

13 голосов
/ 08 апреля 2010

Большинство примеров относятся к более ранней версии iTextSharp. Для версии 5+ iTextSharp (которую, я полагаю, вы используете) свойство / объект HeaderFooter было удалено.

См http://itextpdf.com/history/?branch=50&node=500 (последняя строка)

Чтобы добавить верхние / нижние колонтитулы, теперь вы должны использовать PageEvents. Следующий код демонстрирует, как это сделать в VB. По сути, вы должны наследовать класс PageEventsHelper и следить за событием OnStartPage, а затем добавлять свой код по мере необходимости.

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

Изначально это выглядело как большая работа, но с другой стороны, вы можете добавить к своему верхнему / нижнему колонтитулу больше, чем просто текст. Например, теперь вы можете легко добавить все, что будет поддерживать Document.

...