Adding page numbers to an existing PDF

This is a code example of iText PDF, discover more.

30th October 2015

Switch code for this example

In this example, we use ColumnText to add page numbers to an existing PDF document.
package sandbox.stamper;

import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;


import sandbox.WrapToTest;

public class StampPageXofY {

    public static final String SRC = "resources/pdfs/nameddestinations.pdf";
    public static final String DEST = "results/stamper/pagenumbers.pdf";

    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        new StampPageXofY().manipulatePdf(SRC, DEST);

    public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
        PdfReader reader = new PdfReader(src);
        int n = reader.getNumberOfPages();
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
        PdfContentByte pagecontent;
        for (int i = 0; i < n; ) {
            pagecontent = stamper.getOverContent(++i);
            ColumnText.showTextAligned(pagecontent, Element.ALIGN_RIGHT,
                    new Phrase(String.format("page %s of %s", i, n)), 559, 806, 0);

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now