SelectPdf for .NET - Pdf Document Headers and Footers - VB.NET / 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 VB.NET



Imports SelectPdf

Namespace Controllers
    Public Class HeadersAndFootersController
        Inherits Controller

        ' GET: HeadersAndFooters
        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()
            doc.Margins = New PdfMargins(10, 10, 0, 0)

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

            ' create a new pdf font
            Dim font2 As PdfFont = doc.AddFont(PdfStandardFont.Helvetica)
            font2.Size = 12
            font2.IsUnderline = True

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

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

            ' header template (100 points in height) with image element
            doc.Header = doc.AddTemplate(doc.Pages(0).ClientRectangle.Width, 100)
            Dim img1 As 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)
            Dim text1 As 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.
            Dim text As New PdfTextElement(0, 0, Helper.SomeLongText(), font)
            page.Add(text)

            ' 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