SelectPdf for .NET - Page Numbering - C# / ASP.NET MVC Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several pages and automatic page numbering in the document footer.

The footer is a custom pdf template, displayed at the bottom of the page. It can contain all kinds of page elements that will repeat on each page of the pdf document.

One special element that can be added to the pdf footer is the text element, that can be used to display page numbers using the {page_number} and {total_pages} placeholders.


Sample Code C#



using System.Web.Mvc;
using SelectPdf.Samples.Models;

namespace SelectPdf.Samples.Controllers
{
    public class PageNumberingController : Controller
    {
        // GET: PageNumbering
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult SubmitAction(FormCollection collection)
        {
            // create a new pdf document
            PdfDocument doc = new PdfDocument();
            doc.Margins = new PdfMargins(10, 10, 0, 0);

            // create a new pdf font
            PdfFont font = doc.AddFont(PdfStandardFont.Helvetica);
            font.Size = 24;

            // add a new page to the document
            PdfPage page = doc.AddPage();

            // footer template (100 points in height) with text element
            doc.Footer = doc.AddTemplate(doc.Pages[0].ClientRectangle.Width, 100);
            PdfTextElement text1 = new PdfTextElement(0, 50,
                "Page: {page_number} of {total_pages}.", font);
            text1.ForeColor = System.Drawing.Color.Blue;
            doc.Footer.Add(text1);

            // create a new text element and add it to the page
            // if page elements are added after header and footer is set, 
            // they will not be displayed in those areas.
            PdfTextElement text = new PdfTextElement(0, 0, Helper.SomeLongText(), font);
            page.Add(text);

            // save pdf document
            byte[] pdf = doc.Save();

            // close pdf document
            doc.Close();

            // return resulted pdf document
            FileResult fileResult = new FileContentResult(pdf, "application/pdf");
            fileResult.FileDownloadName = "Document.pdf";
            return fileResult;
        }
    }
}