Как заявляет @ bradbury9, событие OnEndPage - это то, к чему вы стремитесь.
Вот пример кода, который добавляет желаемый текст нижнего колонтитула в нужную позицию страницы каждый раз, когда событие OnPageEndtriggered
public class MyPdfPageEventHandler: PdfPageEventHelper
{
const float horizontalPosition = 0.5f; // %50 of the page width, starting from the left
const float verticalPosition = 0.1f; // %10 of the page height starting from the bottom
public override void OnEndPage(PdfWriter writer, Document document)
{
var footerText = new Phrase(writer.CurrentPageNumber.ToString());
float posX = writer.PageSize.Width * horizontalPosition;
float posY = writer.PageSize.Height * verticalPosition;
float rotation = 0;
ColumnText.ShowTextAligned(writer.DirectContent, Element.PHRASE, footerText, posX, posY, rotation);
}
}
А вот пример кода о том, как заставить его работать
static void Main(string[] args)
{
FileStream fs = new FileStream("NewDocument.pdf", FileMode.Create, FileAccess.Write, FileShare.None);
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
writer.PageEvent = new MyPdfPageEventHandler(); //This will trigger the code above
doc.Open();
doc.Add(new Paragraph("First Page"));
doc.NewPage();
doc.Add(new Paragraph("Second Page"));
doc.NewPage();
doc.Add(new Paragraph("Thid Page"));
doc.Close();
}
Вы можете использовать класс MyPdfPageEventHandler для переопределения других событий страницы, таких как OnStartPage и т. д.