SelectPdf for .NET - Pdf Document Headers and Footers - C# / ASP.NET MVC Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several pages and set the header and footer of the pdf document.

Headers and footers are a custom type of pdf template. Header is displayed at the top of the page. Footer is displayed at the bottom of the page. They contain elements that repeat on each page of the pdf document.


Sample Code C#



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

namespace SelectPdf.Samples.Controllers
{
    public class HeadersAndFootersController : Controller
    {
        // GET: HeadersAndFooters
        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;

            // create a new pdf font
            PdfFont font2 = doc.AddFont(PdfStandardFont.Helvetica);
            font2.Size = 12;
            font2.IsUnderline = true;

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

            // get image path
            string imgFile = Server.MapPath("~/files/logo.png");

            // header template (100 points in height) with image element
            doc.Header = doc.AddTemplate(doc.Pages[0].ClientRectangle.Width, 100);
            PdfImageElement img1 = new PdfImageElement(0, 0, imgFile);
            doc.Header.Add(img1);

            // 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,
                "Footer text: Document generated by SelectPdf", font2);
            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;
        }
    }
}