SelectPdf for .NET - Pdf Watermarks - VB.NET / ASP.NET MVC Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several pages and watermark all the pages with a transparent image in the background.

Pdf watermarks 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 PdfWatermarksController
        Inherits Controller

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

        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)

            ' get image path
            Dim imgFile As String = Server.MapPath("~/files/logo.png")

            ' watermark all pages - add a template containing an image 
            ' to the bottom right of the page
            ' the image should repeat on all pdf pages automatically
            ' the template should be rendered behind the rest of the page elements
            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,
            img.Transparency = 50
            template.Background = True

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

            ' close pdf document

            ' 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