In this article I will explain how to add page numbers to existing PDF file using iTextSharp in C# and VB.Net.
The pages of the PDF file will be read and then using the PdfStamper class page numbers will be written to each page of the PDF document.
 
Namespaces
You will need to import the following namespaces.
C#
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
 
VB.Net
Imports System.IO
Imports iTextSharp.text
Imports iTextSharp.text.pdf
 
 
Adding Page numbers to existing PDF
The PDF file to which the page numbers needs to be added is read into a Byte array from the disk. Then the byte array is read into a PdfReader object and a loop is executed over the pages of the PDF and the page number is added to each page using the PdfStamper class.
Finally the MemoryStream is saved to disk as PDF file.
C#
protected void AddPageNumber(object sender, EventArgs e)
{
    byte[] bytes = File.ReadAllBytes(@"D:\PDFs\Test.pdf");
    Font blackFont = FontFactory.GetFont("Arial", 12, Font.NORMAL, BaseColor.BLACK);
    using (MemoryStream stream = new MemoryStream())
    {
        PdfReader reader = new PdfReader(bytes);
        using (PdfStamper stamper = new PdfStamper(reader, stream))
        {
            int pages = reader.NumberOfPages;
            for (int i = 1; i <= pages; i++)
            {
                ColumnText.ShowTextAligned(stamper.GetUnderContent(i), Element.ALIGN_RIGHT, new Phrase(i.ToString(), blackFont), 568f, 15f, 0);
            }
        }
        bytes = stream.ToArray();
    }
    File.WriteAllBytes(@"D:\PDFs\Test_1.pdf", bytes);
}
 
VB.Net
Protected Sub AddPageNumber(sender As Object, e As EventArgs)
    Dim bytes As Byte() = File.ReadAllBytes("D:\PDFs\Test.pdf")
    Dim blackFont As Font = FontFactory.GetFont("Arial", 12, Font.NORMAL, BaseColor.BLACK)
    Using stream As New MemoryStream()
        Dim reader As New PdfReader(bytes)
        Using stamper As New PdfStamper(reader, stream)
            Dim pages As Integer = reader.NumberOfPages
            For i As Integer = 1 To pages
                ColumnText.ShowTextAligned(stamper.GetUnderContent(i), Element.ALIGN_RIGHT, New Phrase(i.ToString(), blackFont), 568.0F, 15.0F, 0)
            Next
        End Using
        bytes = stream.ToArray()
    End Using
    File.WriteAllBytes("D:\PDFs\Test_1.pdf", bytes)
End Sub
 
 
Screenshots
Original PDF file
iTextSharp: Add Page numbers to existing PDF using C# and VB.Net
PDF file after adding page numbers
iTextSharp: Add Page numbers to existing PDF using C# and VB.Net
 
 
Downloads

Download Code