Imports SelectPdf

Namespace Controllers
    Public Class PdfLinksController
        Inherits Controller

        ' GET: PdfLinks
        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()

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

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

            ' define a rendering result object
            Dim result As PdfRenderingResult

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

            ' create a new text element and add it to the first page
            Dim text1 As New PdfTextElement(0, 0,
                    "First page (no link on this text)", font)
            page1.Add(text1)

            ' create a new text element and add it to the second page
            Dim text2 As New PdfTextElement(0, 0,
                    "Second page (no link on this text)", font)
            page2.Add(text2)

            ' create external link in 2 steps

            ' 1 - create the link text
            Dim linkText1 As New PdfTextElement(0, 50,
                    "External link (click to go to selectpdf.com)", font)
            result = page1.Add(linkText1)

            ' 2 - add the link using the text rendering rectangle
            Dim extLink1 As New PdfExternalLinkElement(result.PdfPageLastRectangle,
                                                       "https://selectpdf.com")
            page1.Add(extLink1)

            ' create internal link in 2 steps

            ' 1 - create the link text
            Dim linkText2 As New PdfTextElement(0, 100,
                    "Internal link (click to go to the second page)", font)
            result = page1.Add(linkText2)

            ' 2 - add the link using the text rendering rectangle
            Dim intLink1 As New PdfInternalLinkElement(result.PdfPageLastRectangle,
                                                       New PdfDestination(page2))
            page1.Add(intLink1)

            ' 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