using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Drawing;

// Use EVO PDF Namespace
using EvoPdfClient;

namespace EvoHtmlToPdfDemo.PDF_Creator
{
    public partial class Graphic_Elements : System.Web.UI.Page
    {
        protected void createPdfButton_Click(object sender, EventArgs e)
        {
            // Get the server IP and port
            String serverIP = textBoxServerIP.Text;
            uint serverPort = uint.Parse(textBoxServerPort.Text);

            // Create a PDF document
            Document pdfDocument = null;
            if (radioButtonUseTcpService.Checked)
                pdfDocument = new Document(serverIP, serverPort);
            else
                pdfDocument = new Document(true, textBoxWebServiceUrl.Text);

            // Set optional service password
            if (textBoxServicePassword.Text.Length > 0)
                pdfDocument.ServicePassword = textBoxServicePassword.Text;

            // Set license key received after purchase to use the converter in licensed mode
            // Leave it not set to use the converter in demo mode
            pdfDocument.LicenseKey = "4W9+bn19bn5ue2B+bn1/YH98YHd3d3c=";

            // The titles font used to mark various sections of the PDF document
            PdfFont titleFont = new PdfFont("Times New Roman", 12, true);
            titleFont.Bold = true;

            // Create a PDF page in PDF document
            PdfPage pdfPage = pdfDocument.AddPage();

            // Line Elements

            // Add section title
            TextElement titleTextElement = new TextElement(5, 5, "Line Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfPage.AddElement(titleTextElement);

            // Add a line with default properties
            LineElement lineElement = new LineElement(0, 0, 50, 0);
            pdfDocument.AddElement(lineElement, 10);

            // Add a bold line
            LineElement boldLineElement = new LineElement(0, 0, 50, 0);
            boldLineElement.LineStyle.LineWidth = 3;
            pdfDocument.AddElement(boldLineElement, 10, true, false, 0, true, false);

            // Add dotted line
            LineElement dottedLineElement = new LineElement(0, 0, 50, 0);
            dottedLineElement.LineStyle.LineDashStyle = LineDashStyle.Dot;
            dottedLineElement.ForeColor = RgbColor.Green;
            pdfDocument.AddElement(dottedLineElement, 10, true, false, 0, true, false);

            // Add a dashed line
            LineElement dashedLineElement = new LineElement(0, 0, 50, 0);
            dashedLineElement.LineStyle.LineDashStyle = LineDashStyle.Dash;
            dashedLineElement.ForeColor = RgbColor.Green;
            pdfDocument.AddElement(dashedLineElement, 10, true, false, 0, true, false);

            // Add a dash-dot-dot line
            LineElement dashDotDotLineElement = new LineElement(0, 0, 50, 0);
            dashDotDotLineElement.LineStyle.LineDashStyle = LineDashStyle.DashDotDot;
            dashDotDotLineElement.ForeColor = RgbColor.Green;
            pdfDocument.AddElement(dashDotDotLineElement, 10, true, false, 0, true, false);

            // Add a bold line with rounded cap style
            LineElement roundCapBoldLine = new LineElement(0, 0, 50, 0);
            roundCapBoldLine.LineStyle.LineWidth = 5;
            roundCapBoldLine.LineStyle.LineCapStyle = LineCapStyle.RoundCap;
            roundCapBoldLine.ForeColor = RgbColor.Blue;
            pdfDocument.AddElement(roundCapBoldLine, 10, true, false, 0, true, false);

            // Add a bold line with projecting square cap style
            LineElement projectingSquareCapBoldLine = new LineElement(0, 0, 50, 0);
            projectingSquareCapBoldLine.LineStyle.LineWidth = 5;
            projectingSquareCapBoldLine.LineStyle.LineCapStyle = LineCapStyle.ProjectingSquareCap;
            projectingSquareCapBoldLine.ForeColor = RgbColor.Blue;
            pdfDocument.AddElement(projectingSquareCapBoldLine, 10, true, false, 0, true, false);

            // Add a bold line with projecting butt cap style
            LineElement buttCapBoldLine = new LineElement(0, 0, 50, 0);
            buttCapBoldLine.LineStyle.LineWidth = 5;
            buttCapBoldLine.LineStyle.LineCapStyle = LineCapStyle.ButtCap;
            buttCapBoldLine.ForeColor = RgbColor.Blue;
            pdfDocument.AddElement(buttCapBoldLine, 10, true, false, 0, true, false);

            // Line Join Styles

            // Add section title
            titleTextElement = new TextElement(0, 0, "Line Join and Cap Styles", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            // Add graphic path with miter join line style
            PathElement miterJoinPath = new PathElement(new PointFloat(0, 50));
            // Add path lines
            miterJoinPath.AddLineSegment(new PointFloat(25, 0));
            miterJoinPath.AddLineSegment(new PointFloat(50, 50));
            // Set path style
            miterJoinPath.LineStyle.LineWidth = 5;
            miterJoinPath.LineStyle.LineCapStyle = LineCapStyle.ProjectingSquareCap;
            miterJoinPath.LineStyle.LineJoinStyle = LineJoinStyle.MiterJoin;
            miterJoinPath.ForeColor = RgbColor.Coral;
            pdfDocument.AddElement(miterJoinPath, 5, false, 10, true);

            // Add graphic path with round join line style
            PathElement roundJoinPath = new PathElement(new PointFloat(0, 50));
            // Add path lines
            roundJoinPath.AddLineSegment(new PointFloat(25, 0));
            roundJoinPath.AddLineSegment(new PointFloat(50, 50));
            // Set path style
            roundJoinPath.LineStyle.LineWidth = 5;
            roundJoinPath.LineStyle.LineCapStyle = LineCapStyle.RoundCap;
            roundJoinPath.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin;
            roundJoinPath.ForeColor = RgbColor.Coral;
            pdfDocument.AddElement(roundJoinPath, 20, true, false, 0, true, false);


            // Add graphic path with bevel join line style
            PathElement bevelJoinPath = new PathElement(new PointFloat(0, 50));
            // Add lines to path
            bevelJoinPath.AddLineSegment(new PointFloat(25, 0));
            bevelJoinPath.AddLineSegment(new PointFloat(50, 50));
            // Set path style
            bevelJoinPath.LineStyle.LineWidth = 5;
            bevelJoinPath.LineStyle.LineCapStyle = LineCapStyle.ButtCap;
            bevelJoinPath.LineStyle.LineJoinStyle = LineJoinStyle.BevelJoin;
            bevelJoinPath.ForeColor = RgbColor.Coral;
            // Add element to document
            pdfDocument.AddElement(bevelJoinPath, 20, true, false, 0, true, false);

            // Add a polygon with miter join line style
            PointFloat[] polygonPoints = new PointFloat[]{ 
                                new PointFloat(0, 50),  
                                new PointFloat(25, 0), 
                                new PointFloat(50, 50)};
            PolygonElement miterJoinPolygon = new PolygonElement(polygonPoints);
            // Set polygon style
            miterJoinPolygon.LineStyle.LineWidth = 5;
            miterJoinPolygon.LineStyle.LineJoinStyle = LineJoinStyle.MiterJoin;
            miterJoinPolygon.ForeColor = RgbColor.Green;
            miterJoinPolygon.BackColor = RgbColor.AliceBlue;
            pdfDocument.AddElement(miterJoinPolygon, 20, true, false, 0, true, false);

            // Add a polygon with round join line style
            polygonPoints = new PointFloat[]{ 
                                new PointFloat(0, 50),  
                                new PointFloat(25, 0), 
                                new PointFloat(50, 50)};
            PolygonElement roundJoinPolygon = new PolygonElement(polygonPoints);
            // Set polygon style
            roundJoinPolygon.LineStyle.LineWidth = 5;
            roundJoinPolygon.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin;
            roundJoinPolygon.ForeColor = RgbColor.Green;
            roundJoinPolygon.BackColor = RgbColor.Blue;
            pdfDocument.AddElement(roundJoinPolygon, 20, true, false, 0, true, false);

            // Add a polygon with bevel join line style
            polygonPoints = new PointFloat[]{ 
                                new PointFloat(0, 50),  
                                new PointFloat(25, 0), 
                                new PointFloat(50, 50)};
            PolygonElement bevelJoinPolygon = new PolygonElement(polygonPoints);
            // Set polygon style
            bevelJoinPolygon.LineStyle.LineWidth = 5;
            bevelJoinPolygon.LineStyle.LineJoinStyle = LineJoinStyle.BevelJoin;
            bevelJoinPolygon.ForeColor = RgbColor.Green;
            bevelJoinPolygon.BackColor = RgbColor.Blue;
            pdfDocument.AddElement(bevelJoinPolygon, 20, true, false, 0, true, false);


            // Add a Graphics Path Element

            // Add section title
            titleTextElement = new TextElement(0, 0, "Path Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            // Create the path 
            PathElement graphicsPath = new PathElement(new PointFloat(0, 0));
            // Add line and Bezier curve segments
            graphicsPath.AddLineSegment(new PointFloat(50, 50));
            graphicsPath.AddBezierCurveSegment(new PointFloat(100, 0), new PointFloat(200, 100), new PointFloat(250, 50));
            graphicsPath.AddLineSegment(new PointFloat(300, 0));
            // Close path
            graphicsPath.ClosePath = true;
            // Set path style
            graphicsPath.LineStyle.LineWidth = 3;
            graphicsPath.LineStyle.LineJoinStyle = LineJoinStyle.MiterJoin;
            graphicsPath.LineStyle.LineCapStyle = LineCapStyle.RoundCap;
            graphicsPath.ForeColor = RgbColor.Green;
            //graphicsPath.BackColor = Color.Green;
            graphicsPath.Gradient = new GradientColor(GradientDirection.Vertical, RgbColor.LightGreen, RgbColor.Blue);
            // Add element to document
            pdfDocument.AddElement(graphicsPath, 5, false, 10, true);


            // Add Circle Elements

            // Add section title
            titleTextElement = new TextElement(0, 0, "Circle Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            // Add a Circle Element with default settings
            CircleElement circleElement = new CircleElement(30, 30, 30);
            pdfDocument.AddElement(circleElement, 10);

            // Add dotted circle element
            CircleElement dottedCircleElement = new CircleElement(30, 30, 30);
            dottedCircleElement.ForeColor = RgbColor.Green;
            dottedCircleElement.LineStyle.LineDashStyle = LineDashStyle.Dot;
            pdfDocument.AddElement(dottedCircleElement, 10, true, false, 0, true, false);

            // Add a disc
            CircleElement discElement = new CircleElement(30, 30, 30);
            discElement.ForeColor = RgbColor.Green;
            discElement.BackColor = RgbColor.LightGray;
            pdfDocument.AddElement(discElement, 10, true, false, 0, true, false);

            // Add disc with bold border
            CircleElement discWithBoldBorder = new CircleElement(30, 30, 30);
            discWithBoldBorder.LineStyle.LineWidth = 5;
            discWithBoldBorder.BackColor = RgbColor.Coral;
            discWithBoldBorder.ForeColor = RgbColor.Blue;
            pdfDocument.AddElement(discWithBoldBorder, 10, true, false, 0, true, false);

            // Add colored disc with bold border
            for (int i = 30; i > 0; i = i - 3)
            {
                CircleElement coloredDisc = new CircleElement(30, 30, i);
                coloredDisc.LineStyle.LineWidth = 3;
                switch ((i / 3) % 7)
                {
                    case 0:
                        coloredDisc.BackColor = RgbColor.Red;
                        break;
                    case 1:
                        coloredDisc.BackColor = RgbColor.Orange;
                        break;
                    case 2:
                        coloredDisc.BackColor = RgbColor.Yellow;
                        break;
                    case 3:
                        coloredDisc.BackColor = RgbColor.Green;
                        break;
                    case 4:
                        coloredDisc.BackColor = RgbColor.Blue;
                        break;
                    case 5:
                        coloredDisc.BackColor = RgbColor.Indigo;
                        break;
                    case 6:
                        coloredDisc.BackColor = RgbColor.Violet;
                        break;
                    default:
                        break;
                }
                if (i == 30)
                    pdfDocument.AddElement(coloredDisc, 10, true, false, 0, true, false);
                else
                    pdfDocument.AddElement(coloredDisc, 3, true, true, 3, true, false);
            }

            // Add a doughnut
            CircleElement exteriorNoBorderDisc = new CircleElement(30, 30, 30);
            exteriorNoBorderDisc.BackColor = RgbColor.Coral;
            pdfDocument.AddElement(exteriorNoBorderDisc, 40, true, false, -30, true, false);

            CircleElement interiorNoBorderDisc = new CircleElement(30, 30, 15);
            interiorNoBorderDisc.BackColor = RgbColor.White;
            pdfDocument.AddElement(interiorNoBorderDisc, 15, true, true, 15, true, false);

            // Add a simple disc
            CircleElement simpleDisc = new CircleElement(30, 30, 30);
            simpleDisc.BackColor = RgbColor.Green;
            pdfDocument.AddElement(simpleDisc, 25, true, false, -15, true, false);


            // Add Ellipse Elements

            // Add section title
            titleTextElement = new TextElement(0, 0, "Ellipse Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            // Add an Ellipse Element with default settings
            EllipseElement ellipseElement = new EllipseElement(50, 30, 50, 30);
            pdfDocument.AddElement(ellipseElement, 5, false, 10, true);

            // Add an Ellipse Element with background color and line color
            EllipseElement ellipseWithBackgroundAndBorder = new EllipseElement(50, 30, 50, 30);
            ellipseWithBackgroundAndBorder.BackColor = RgbColor.LightGray;
            ellipseWithBackgroundAndBorder.ForeColor = RgbColor.Green;
            pdfDocument.AddElement(ellipseWithBackgroundAndBorder, 10, true, false, 0, true, false);

            // Create an ellipse from multiple Ellipse Arc Elements
            EllipseArcElement ellipseArcElement1 = new EllipseArcElement(0, 0, 100, 60, 0, 100);
            ellipseArcElement1.ForeColor = RgbColor.Coral;
            ellipseArcElement1.LineStyle.LineWidth = 3;
            pdfDocument.AddElement(ellipseArcElement1, 10, true, false, 0, true, false);

            EllipseArcElement ellipseArcElement2 = new EllipseArcElement(0, 0, 100, 60, 100, 100);
            ellipseArcElement2.ForeColor = RgbColor.Blue;
            ellipseArcElement2.LineStyle.LineWidth = 3;
            pdfDocument.AddElement(ellipseArcElement2, 0, true, true, 0, true, false);

            EllipseArcElement ellipseArcElement3 = new EllipseArcElement(0, 0, 100, 60, 180, 100);
            ellipseArcElement3.ForeColor = RgbColor.Green;
            ellipseArcElement3.LineStyle.LineWidth = 3;
            pdfDocument.AddElement(ellipseArcElement3, 0, true, true, 0, true, false);

            EllipseArcElement ellipseArcElement4 = new EllipseArcElement(0, 0, 100, 60, 270, 100);
            ellipseArcElement4.ForeColor = RgbColor.Violet;
            ellipseArcElement4.LineStyle.LineWidth = 3;
            pdfDocument.AddElement(ellipseArcElement4, 0, true, true, 0, true, false);

            // Create an ellipse from multiple Ellipse Slice Elements
            EllipseSliceElement ellipseSliceElement1 = new EllipseSliceElement(0, 0, 100, 60, 0, 90);
            ellipseSliceElement1.BackColor = RgbColor.Coral;
            pdfDocument.AddElement(ellipseSliceElement1, 10, true, false, 0, true, false);

            EllipseSliceElement ellipseSliceElement2 = new EllipseSliceElement(0, 0, 100, 60, 90, 90);
            ellipseSliceElement2.BackColor = RgbColor.Blue;
            pdfDocument.AddElement(ellipseSliceElement2, 0, true, true, 0, true, false);

            EllipseSliceElement ellipseSliceElement3 = new EllipseSliceElement(0, 0, 100, 60, 180, 90);
            ellipseSliceElement3.BackColor = RgbColor.Green;
            pdfDocument.AddElement(ellipseSliceElement3, 0, true, true, 0, true, false);


            EllipseSliceElement ellipseSliceElement4 = new EllipseSliceElement(0, 0, 100, 60, 270, 90);
            ellipseSliceElement4.BackColor = RgbColor.Violet;
            pdfDocument.AddElement(ellipseSliceElement4, 0, true, true, 0, true, false);

            // Add an Ellipse Element with background
            EllipseElement ellipseWithBackground = new EllipseElement(0, 0, 50, 30);
            ellipseWithBackground.BackColor = RgbColor.Green;
            pdfDocument.AddElement(ellipseWithBackground, 10, true, false, 0, true, false);


            // Add Rectangle Elements

            // Add section title
            titleTextElement = new TextElement(0, 0, "Rectangle Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            // Add a Rectangle Element with default settings
            RectangleElement rectangleElement = new RectangleElement(0, 0, 100, 60);
            pdfDocument.AddElement(rectangleElement, 10);

            // Add a Rectangle Element with background color and dotted line
            RectangleElement rectangleElementWithDottedLine = new RectangleElement(0, 0, 100, 60);
            rectangleElementWithDottedLine.BackColor = RgbColor.LightGray;
            rectangleElementWithDottedLine.ForeColor = RgbColor.Green;
            rectangleElementWithDottedLine.LineStyle.LineDashStyle = LineDashStyle.Dot;
            pdfDocument.AddElement(rectangleElementWithDottedLine, 10, true, false, 0, true, false);

            // Add a Rectangle Element with background color without border
            RectangleElement rectangleElementWithoutBorder = new RectangleElement(0, 0, 100, 60);
            rectangleElementWithoutBorder.BackColor = RgbColor.Green;
            pdfDocument.AddElement(rectangleElementWithoutBorder, 10, true, false, 0, true, false);

            // Add a Rectangle Element with background color, bold border line and rounded corners
            RectangleElement rectangleElementWithRoundedCorners = new RectangleElement(0, 0, 100, 60);
            rectangleElementWithRoundedCorners.BackColor = RgbColor.Coral;
            rectangleElementWithRoundedCorners.ForeColor = RgbColor.Blue;
            rectangleElementWithRoundedCorners.LineStyle.LineWidth = 5;
            rectangleElementWithRoundedCorners.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin;
            pdfDocument.AddElement(rectangleElementWithRoundedCorners, 10, true, false, 0, true, false);


            // Add Polygon Elements

            // Add section title
            titleTextElement = new TextElement(0, 0, "Polygon Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            PointFloat[] polygonElementPoints = new PointFloat[]{
                    new PointFloat(0, 50),
                    new PointFloat(50, 0),
                    new PointFloat(100, 50),
                    new PointFloat(50, 100)
                };

            // Add a Polygon Element with default settings
            PolygonElement polygonElement = new PolygonElement(polygonElementPoints);
            pdfDocument.AddElement(polygonElement, 10);

            polygonElementPoints = new PointFloat[]{
                    new PointFloat(0, 50),
                    new PointFloat(50, 0),
                    new PointFloat(100, 50),
                    new PointFloat(50, 100)
                };

            // Add a Polygon Element with background color and border
            polygonElement = new PolygonElement(polygonElementPoints);
            polygonElement.BackColor = RgbColor.LightGray;
            polygonElement.ForeColor = RgbColor.Green;
            polygonElement.LineStyle.LineDashStyle = LineDashStyle.Dot;
            pdfDocument.AddElement(polygonElement, 10, true, false, 0, true, false);

            polygonElementPoints = new PointFloat[]{
                    new PointFloat(0, 50),
                    new PointFloat(50, 0),
                    new PointFloat(100, 50),
                    new PointFloat(50, 100)
                };

            // Add a Polygon Element with background color
            polygonElement = new PolygonElement(polygonElementPoints);
            polygonElement.BackColor = RgbColor.Green;
            pdfDocument.AddElement(polygonElement, 10, true, false, 0, true, false);

            PointFloat[] polyFillPoints = new PointFloat[]{
                    new PointFloat(0, 50),
                    new PointFloat(50, 0),
                    new PointFloat(100, 50),
                    new PointFloat(50, 100)
                };

            // Add a Polygon Element with background color and rounded line joins
            PolygonElement polygonElementWithBackgruondColorAndBorder = new PolygonElement(polyFillPoints);
            polygonElementWithBackgruondColorAndBorder.ForeColor = RgbColor.Blue;
            polygonElementWithBackgruondColorAndBorder.BackColor = RgbColor.Coral;
            polygonElementWithBackgruondColorAndBorder.LineStyle.LineWidth = 5;
            polygonElementWithBackgruondColorAndBorder.LineStyle.LineCapStyle = LineCapStyle.RoundCap;
            polygonElementWithBackgruondColorAndBorder.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin;
            pdfDocument.AddElement(polygonElementWithBackgruondColorAndBorder, 10, true, false, 0, true, false);

            // Add Bezier Curve Elements

            // Add section title
            titleTextElement = new TextElement(0, 0, "Bezier Curve Elements", titleFont);
            titleTextElement.ForeColor = RgbColor.Black;
            pdfDocument.AddElement(titleTextElement, 5, false, 10, true);

            // Add a Bezier Curve Element with normal style

            BezierCurveElement bezierCurveElement = new BezierCurveElement(0, 50, 50, 0, 100, 100, 150, 50);
            bezierCurveElement.ForeColor = RgbColor.Blue;
            bezierCurveElement.LineStyle.LineWidth = 3;
            pdfDocument.AddElement(bezierCurveElement, 10);

            // Add a Bezier Curve Element with dotted line using the controlling points above

            bezierCurveElement = new BezierCurveElement(0, 50, 50, 0, 100, 100, 150, 50);
            bezierCurveElement.ForeColor = RgbColor.Green;
            bezierCurveElement.LineStyle.LineDashStyle = LineDashStyle.Dot;
            bezierCurveElement.LineStyle.LineWidth = 1;
            pdfDocument.AddElement(bezierCurveElement, 30, true, false, 0, true, false);


            // Mark the points controlling the Bezier curve
            CircleElement controlPoint1 = new CircleElement(0, 0, 10);
            controlPoint1.BackColor = RgbColor.Violet;
            controlPoint1.Opacity = 75;
            pdfDocument.AddElement(controlPoint1, -10, true, true, 40, true, false);

            CircleElement controlPoint2 = new CircleElement(0, 0, 10);
            controlPoint2.BackColor = RgbColor.Violet;
            pdfDocument.AddElement(controlPoint2, 50, true, true, -50, true, false);

            CircleElement controlPoint3 = new CircleElement(0, 0, 10);
            controlPoint3.BackColor = RgbColor.Violet;
            pdfDocument.AddElement(controlPoint3, 50, true, true, 100, true, false);

            CircleElement controlPoint4 = new CircleElement(0, 0, 10);
            controlPoint4.BackColor = RgbColor.Violet;
            pdfDocument.AddElement(controlPoint4, 50, true, true, -50, true, false);

            // Save the PDF document in a memory buffer
            byte[] outPdfBuffer = pdfDocument.Save();

            // Send the PDF as response to browser

            // Set response content type
            Response.AddHeader("Content-Type", "application/pdf");

            // Instruct the browser to open the PDF file as an attachment or inline
            Response.AddHeader("Content-Disposition", String.Format("attachment; filename=Graphic_Elements.pdf; size={0}", outPdfBuffer.Length.ToString()));

            // Write the PDF document buffer to HTTP response
            Response.BinaryWrite(outPdfBuffer);

            // End the HTTP response and stop the current page processing
            Response.End();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                sampleCodeLiteral.Text = System.IO.File.ReadAllText(Server.MapPath("~/DemoAppFiles/Input/Code_Samples/CSharp/AspNet/PDF_Creator/Graphic_Elements.html"));
                descriptionLiteral.Text = System.IO.File.ReadAllText(Server.MapPath("~/DemoAppFiles/Input/Descriptions/AspNet/PDF_Creator/Graphic_Elements.html"));

                Master.CollapseAll();
                Master.ExpandNode("PDF_Creator");
                Master.SelectNode("Graphic_Elements");
            }
        }

        protected void demoMenu_MenuItemClick(object sender, MenuEventArgs e)
        {
            switch (e.Item.Value)
            {
                case "Live_Demo":
                    demoMultiView.SetActiveView(liveDemoView);
                    break;
                case "Description":
                    demoMultiView.SetActiveView(descriptionView);
                    break;
                case "Sample_Code":
                    demoMultiView.SetActiveView(sampleCodeView);
                    break;
                default:
                    break;
            }
        }
    }
}