SelectPdf for .NET - Graphic Pdf Elements - VB.NET / ASP.NET MVC Sample

This sample shows how to create a new PDF document using SelectPdf, how to add several graphic elements (like line, rectangle, circle, ellipsis, etc) to it.


Sample Code VB.NET



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