Imports SelectPdf

Namespace Controllers
    Public Class PdfElementsPositionsController
        Inherits Controller

        ' GET: PdfElementsPositions
        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 page As PdfPage = doc.AddPage()

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

            ' define a rendering result object
            Dim result As PdfRenderingResult

            ' create a new text element and add it to the page
            ' Important: get the rendering result returned by Add() 
            ' into the PdfRenderingResult object
            Dim text As New PdfTextElement(0, 0, "Hello world!", font)
            result = page.Add(text)

            ' add 10 more text element, leaving 30pt between the text lines
            For i As Integer = 1 To 10
                Dim elem As New PdfTextElement(0, result.PdfPageLastRectangle.Bottom + 30,
                                               "Text line " & i, font)
                result = page.Add(elem)
            Next

            ' 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