Imports SelectPdf

Namespace Controllers
    Public Class GraphicElementsController
        Inherits Controller

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

            ' define a rendering result object
            Dim result As PdfRenderingResult

            ' simple horizontal line element
            Dim line1 As New PdfLineElement(0, 0, 400, 0)
            line1.LineStyle.LineWidth = 3
            result = page.Add(line1)

            ' horizontal dotted red line element
            Dim line2 As New PdfLineElement(0, 30, 400, 30)
            line2.ForeColor = System.Drawing.Color.Red
            line2.LineStyle.LineWidth = 2
            line2.LineStyle.LineDashStyle = PdfLineDashStyle.Dot
            result = page.Add(line2)

            ' horizontal dashed blue line element with complex styles
            Dim line3 As New PdfLineElement(0, 60, 400, 60)
            line3.ForeColor = System.Drawing.Color.Blue
            line3.LineStyle.LineWidth = 2
            line3.LineStyle.LineDashStyle = PdfLineDashStyle.Dash
            line3.LineStyle.LineCapStyle = PdfLineCapStyle.RoundCap
            line3.LineStyle.LineJoinStyle = PdfLineJoinStyle.RoundJoin
            result = page.Add(line3)

            ' simple rectangle
            Dim rect1 As New PdfRectangleElement(0, 90, 400, 100)
            result = page.Add(rect1)

            ' simple circle
            Dim circ1 As New PdfCircleElement(50, 250, 50)
            circ1.ForeColor = System.Drawing.Color.Green
            result = page.Add(circ1)

            ' ellipse filled with gradient background color
            Dim elli1 As New PdfEllipseElement(300, 250, 100, 50)
            elli1.ForeColor = System.Drawing.Color.Brown
            elli1.Gradient = New PdfGradient(PdfGradientDirection.ForwardDiagonal,
                    System.Drawing.Color.LightBlue, System.Drawing.Color.DarkBlue)
            elli1.LineStyle.LineWidth = 2
            result = page.Add(elli1)

            ' bezier curve
            Dim bez1 As New PdfBezierCurveElement(50, 350, 100, 400, 200, 350,
                250, 370)
            result = page.Add(bez1)

            ' 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