SelectPdf for .NET - Pdf Stamps - C# / ASP.NET MVC Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several pages and stamp all the pages with an image.

Pdf stamps are done using pdf templates that 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 PdfStampsController : Controller
    {
        // GET: PdfStamps
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult SubmitAction(FormCollection collection)
        {
            // create a new pdf document
            PdfDocument doc = new PdfDocument();

            // 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();

            // create a new text element and add it to the page
            PdfTextElement text = new PdfTextElement(0, 0, Helper.SomeLongText(), font);
            page.Add(text);

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

            // stamp all pages - add a template containing an image to the bottom right of 
            // the page the image should repeat on all pdf pages automatically
            PdfTemplate template = doc.AddTemplate(doc.Pages[0].ClientRectangle);
            PdfImageElement img = new PdfImageElement(
                doc.Pages[0].ClientRectangle.Width - 300,
                doc.Pages[0].ClientRectangle.Height - 150, imgFile);
            template.Add(img);

            // 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;
        }
    }
}