SelectPdf for .NET - Page Numbering - VB.NET / ASP.NET MVC Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several pages and automatic page numbering in the document footer.

The footer is a custom pdf template, displayed at the bottom of the page. It can contain all kinds of page elements that will repeat on each page of the pdf document.

One special element that can be added to the pdf footer is the text element, that can be used to display page numbers using the {page_number} and {total_pages} placeholders.


Sample Code VB.NET



Imports SelectPdf

Namespace Controllers
    Public Class PageNumberingController
        Inherits Controller

        ' GET: PageNumbering
        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

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

            ' 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,
                                        "Page: {page_number} of {total_pages}.", font)
            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