SelectPdf for .NET - Pdf Stamps - VB.NET / 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 VB.NET



Imports SelectPdf

Namespace Controllers
    Public Class PdfStampsController
        Inherits Controller

        ' GET: PdfStamps
        Public Function Index() As ActionResult
            Return View()
        End Function

        <HttpPost> _
        Public Function SubmitAction(collection As FormCollection) As ActionResult
            ' create a new pdf document
            Dim doc As New PdfDocument()

            ' create a new pdf font
            Dim font As PdfFont = doc.AddFont(PdfStandardFont.Helvetica)
            font.Size = 24

            ' add a new page to the document
            Dim page As PdfPage = doc.AddPage()

            ' create a new text element and add it to the page
            Dim text As New PdfTextElement(0, 0, Helper.SomeLongText(), font)
            page.Add(text)

            ' get image path
            Dim imgFile As String = 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
            Dim template As PdfTemplate = doc.AddTemplate(doc.Pages(0).ClientRectangle)
            Dim img As New PdfImageElement(doc.Pages(0).ClientRectangle.Width - 300,
                                           doc.Pages(0).ClientRectangle.Height - 150,
                                           imgFile)
            template.Add(img)

            ' save pdf document
            Dim pdf As Byte() = doc.Save()

            ' close pdf document
            doc.Close()

            ' return resulted pdf document
            Dim fileResult As FileResult = New FileContentResult(pdf, "application/pdf")
            fileResult.FileDownloadName = "Document.pdf"
            Return fileResult
        End Function
    End Class
End Namespace