SelectPdf for .NET - Graphic Pdf Elements - C# / 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 C#



using System.Web.Mvc;

namespace SelectPdf.Samples.Controllers
{
    public class GraphicElementsController : Controller
    {
        // GET: GraphicElements
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult SubmitAction(FormCollection collection)
        {
            // create a new pdf document
            PdfDocument doc = new PdfDocument();

            // add a new page to the document
            PdfPage page = doc.AddPage();

            // define a rendering result object
            PdfRenderingResult result;

            // simple horizontal line element
            PdfLineElement line1 = new PdfLineElement(0, 0, 400, 0);
            line1.LineStyle.LineWidth = 3;
            result = page.Add(line1);

            // horizontal dotted red line element
            PdfLineElement line2 = 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
            PdfLineElement line3 = 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
            PdfRectangleElement rect1 = new PdfRectangleElement(0, 90, 400, 100);
            result = page.Add(rect1);

            // simple circle
            PdfCircleElement circ1 = new PdfCircleElement(50, 250, 50);
            circ1.ForeColor = System.Drawing.Color.Green;
            result = page.Add(circ1);

            // ellipse filled with gradient background color
            PdfEllipseElement elli1 = 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
            PdfBezierCurveElement bez1 = new PdfBezierCurveElement(
                50, 350, 100, 400, 200, 350, 250, 370);
            result = page.Add(bez1);

            // save pdf document
            byte[] pdf =  doc.Save();

            // close pdf document
            doc.Close();

            // return resulted pdf document
            FileResult fileResult = new FileContentResult(pdf, "application/pdf");
            fileResult.FileDownloadName = "Document.pdf";
            return fileResult;
        }
    }
}