EVO HTML to PDF Converter allows you to add various types of graphic elements to a PDF document. You can draw lines with various widths, styles, join and cap styles, you can draw path elements composed of lines and Bezier curves and you can draw circles, discs, doughnuts, ellipses, ellipse arcs and slices, rectangles, polygons and Bezier curves in a PDF document.
Code Sample - Add Graphic Elements to a PDF Document
protected void createPdfButton_Click(object sender, EventArgs e) { // Create a PDF document Document pdfDocument = new Document(); // 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="; try { // The result of adding elements to PDF document AddElementResult addElementResult = null; // The titles font used to mark various sections of the PDF document PdfFont titleFont = pdfDocument.AddFont(new Font("Times New Roman", 12, FontStyle.Bold, GraphicsUnit.Point)); // The position on X anf Y axes where to add the next element float yLocation = 5; float xLocation = 5; // Create a PDF page in PDF document PdfPage pdfPage = pdfDocument.AddPage(); // Line Elements // Add section title TextElement titleTextElement = new TextElement(xLocation, yLocation, "Line Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Add a line with default properties LineElement lineElement = new LineElement(xLocation, yLocation, xLocation + 50, yLocation); addElementResult = pdfPage.AddElement(lineElement); // Add a bold line LineElement boldLineElement = new LineElement(xLocation + 60, yLocation, xLocation + 110, yLocation); boldLineElement.LineStyle.LineWidth = 3; addElementResult = pdfPage.AddElement(boldLineElement); // Add dotted line LineElement dottedLineElement = new LineElement(xLocation + 120, yLocation, xLocation + 170, yLocation); dottedLineElement.LineStyle.LineDashStyle = LineDashStyle.Dot; dottedLineElement.ForeColor = Color.Green; addElementResult = pdfPage.AddElement(dottedLineElement); // Add a dashed line LineElement dashedLineElement = new LineElement(xLocation + 180, yLocation, xLocation + 230, yLocation); dashedLineElement.LineStyle.LineDashStyle = LineDashStyle.Dash; dashedLineElement.ForeColor = Color.Green; addElementResult = pdfPage.AddElement(dashedLineElement); // Add a dash-dot-dot line LineElement dashDotDotLineElement = new LineElement(xLocation + 240, yLocation, xLocation + 290, yLocation); dashDotDotLineElement.LineStyle.LineDashStyle = LineDashStyle.DashDotDot; dashDotDotLineElement.ForeColor = Color.Green; addElementResult = pdfPage.AddElement(dashDotDotLineElement); // Add a bold line with rounded cap style LineElement roundCapBoldLine = new LineElement(xLocation + 300, yLocation, xLocation + 350, yLocation); roundCapBoldLine.LineStyle.LineWidth = 5; roundCapBoldLine.LineStyle.LineCapStyle = LineCapStyle.RoundCap; roundCapBoldLine.ForeColor = Color.Blue; addElementResult = pdfPage.AddElement(roundCapBoldLine); // Add a bold line with projecting square cap style LineElement projectingSquareCapBoldLine = new LineElement(xLocation + 360, yLocation, xLocation + 410, yLocation); projectingSquareCapBoldLine.LineStyle.LineWidth = 5; projectingSquareCapBoldLine.LineStyle.LineCapStyle = LineCapStyle.ProjectingSquareCap; projectingSquareCapBoldLine.ForeColor = Color.Blue; addElementResult = pdfPage.AddElement(projectingSquareCapBoldLine); // Add a bold line with projecting butt cap style LineElement buttCapBoldLine = new LineElement(xLocation + 420, yLocation, xLocation + 470, yLocation); buttCapBoldLine.LineStyle.LineWidth = 5; buttCapBoldLine.LineStyle.LineCapStyle = LineCapStyle.ButtCap; buttCapBoldLine.ForeColor = Color.Blue; addElementResult = pdfPage.AddElement(buttCapBoldLine); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Line Join Styles // Add section title xLocation -= 5; yLocation += 10; titleTextElement = new TextElement(xLocation, yLocation, "Line Join and Cap Styles", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Add graphic path with miter join line style PathElement miterJoinPath = new PathElement(new PointF(xLocation, yLocation + 50)); // Add path lines miterJoinPath.AddLineSegment(new PointF(xLocation + 25, yLocation)); miterJoinPath.AddLineSegment(new PointF(xLocation + 50, yLocation + 50)); // Set path style miterJoinPath.LineStyle.LineWidth = 5; miterJoinPath.LineStyle.LineCapStyle = LineCapStyle.ProjectingSquareCap; miterJoinPath.LineStyle.LineJoinStyle = LineJoinStyle.MiterJoin; miterJoinPath.ForeColor = Color.Coral; addElementResult = pdfPage.AddElement(miterJoinPath); // Add graphic path with round join line style PathElement roundJoinPath = new PathElement(new PointF(xLocation + 70, yLocation + 50)); // Add path lines roundJoinPath.AddLineSegment(new PointF(xLocation + 95, yLocation)); roundJoinPath.AddLineSegment(new PointF(xLocation + 120, yLocation + 50)); // Set path style roundJoinPath.LineStyle.LineWidth = 5; roundJoinPath.LineStyle.LineCapStyle = LineCapStyle.RoundCap; roundJoinPath.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin; roundJoinPath.ForeColor = Color.Coral; addElementResult = pdfPage.AddElement(roundJoinPath); // Add graphic path with bevel join line style PathElement bevelJoinPath = new PathElement(new PointF(xLocation + 140, yLocation + 50)); // Add lines to path bevelJoinPath.AddLineSegment(new PointF(xLocation + 165, yLocation)); bevelJoinPath.AddLineSegment(new PointF(xLocation + 190, yLocation + 50)); // Set path style bevelJoinPath.LineStyle.LineWidth = 5; bevelJoinPath.LineStyle.LineCapStyle = LineCapStyle.ButtCap; bevelJoinPath.LineStyle.LineJoinStyle = LineJoinStyle.BevelJoin; bevelJoinPath.ForeColor = Color.Coral; // Add element to document addElementResult = pdfPage.AddElement(bevelJoinPath); // Add a polygon with miter join line style PointF[] polygonPoints = new PointF[]{ new PointF(xLocation + 210, yLocation + 50), new PointF(xLocation + 235, yLocation), new PointF(xLocation + 260, yLocation + 50)}; PolygonElement miterJoinPolygon = new PolygonElement(polygonPoints); // Set polygon style miterJoinPolygon.LineStyle.LineWidth = 5; miterJoinPolygon.LineStyle.LineJoinStyle = LineJoinStyle.MiterJoin; miterJoinPolygon.ForeColor = Color.Green; miterJoinPolygon.BackColor = Color.AliceBlue; addElementResult = pdfPage.AddElement(miterJoinPolygon); // Add a polygon with round join line style polygonPoints = new PointF[]{ new PointF(xLocation + 280, yLocation + 50), new PointF(xLocation + 305, yLocation), new PointF(xLocation + 330, yLocation + 50)}; PolygonElement roundJoinPolygon = new PolygonElement(polygonPoints); // Set polygon style roundJoinPolygon.LineStyle.LineWidth = 5; roundJoinPolygon.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin; roundJoinPolygon.ForeColor = Color.Green; roundJoinPolygon.BackColor = Color.Blue; addElementResult = pdfPage.AddElement(roundJoinPolygon); // Add a polygon with bevel join line style polygonPoints = new PointF[]{ new PointF(xLocation + 350, yLocation + 50), new PointF(xLocation + 375, yLocation), new PointF(xLocation + 400, yLocation + 50)}; PolygonElement bevelJoinPolygon = new PolygonElement(polygonPoints); // Set polygon style bevelJoinPolygon.LineStyle.LineWidth = 5; bevelJoinPolygon.LineStyle.LineJoinStyle = LineJoinStyle.BevelJoin; bevelJoinPolygon.ForeColor = Color.Green; bevelJoinPolygon.BackColor = Color.Blue; addElementResult = pdfPage.AddElement(bevelJoinPolygon); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Add a Graphics Path Element // Add section title xLocation -= 5; yLocation += 10; titleTextElement = new TextElement(xLocation, yLocation, "Path Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Create the path PathElement graphicsPath = new PathElement(new PointF(xLocation, yLocation)); // Add line and Bezier curve segments graphicsPath.AddLineSegment(new PointF(xLocation + 50, yLocation + 50)); graphicsPath.AddBezierCurveSegment(new PointF(xLocation + 100, yLocation), new PointF(xLocation + 200, yLocation + 100), new PointF(xLocation + 250, yLocation + 50)); graphicsPath.AddLineSegment(new PointF(xLocation + 300, yLocation)); // Close path graphicsPath.ClosePath = true; // Set path style graphicsPath.LineStyle.LineWidth = 3; graphicsPath.LineStyle.LineJoinStyle = LineJoinStyle.MiterJoin; graphicsPath.LineStyle.LineCapStyle = LineCapStyle.RoundCap; graphicsPath.ForeColor = Color.Green; //graphicsPath.BackColor = Color.Green; graphicsPath.Gradient = new GradientColor(GradientDirection.Vertical, System.Drawing.Color.LightGreen, System.Drawing.Color.Blue); // Add element to document addElementResult = pdfPage.AddElement(graphicsPath); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Add Circle Elements // Add section title xLocation -= 5; yLocation -= 10; titleTextElement = new TextElement(xLocation, yLocation, "Circle Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Add a Circle Element with default settings CircleElement circleElement = new CircleElement(xLocation + 30, yLocation + 30, 30); addElementResult = pdfPage.AddElement(circleElement); // Add dotted circle element CircleElement dottedCircleElement = new CircleElement(xLocation + 100, yLocation + 30, 30); dottedCircleElement.ForeColor = Color.Green; dottedCircleElement.LineStyle.LineDashStyle = LineDashStyle.Dot; addElementResult = pdfPage.AddElement(dottedCircleElement); // Add a disc CircleElement discElement = new CircleElement(xLocation + 170, yLocation + 30, 30); discElement.ForeColor = Color.Green; discElement.BackColor = Color.LightGray; addElementResult = pdfPage.AddElement(discElement); // Add disc with bold border CircleElement discWithBoldBorder = new CircleElement(xLocation + 240, yLocation + 30, 30); discWithBoldBorder.LineStyle.LineWidth = 5; discWithBoldBorder.BackColor = Color.Coral; discWithBoldBorder.ForeColor = Color.Blue; addElementResult = pdfPage.AddElement(discWithBoldBorder); // Add colored disc with bold border for (int i = 30; i >= 0; i = i - 3) { CircleElement coloredDisc = new CircleElement(xLocation + 310, yLocation + 30, i == 0 ? 1 : i); coloredDisc.LineStyle.LineWidth = 3; switch ((i / 3) % 7) { case 0: coloredDisc.BackColor = Color.Red; break; case 1: coloredDisc.BackColor = Color.Orange; break; case 2: coloredDisc.BackColor = Color.Yellow; break; case 3: coloredDisc.BackColor = Color.Green; break; case 4: coloredDisc.BackColor = Color.Blue; break; case 5: coloredDisc.BackColor = Color.Indigo; break; case 6: coloredDisc.BackColor = Color.Violet; break; default: break; } addElementResult = pdfPage.AddElement(coloredDisc); } // Add a doughnut CircleElement exteriorNoBorderDisc = new CircleElement(xLocation + 380, yLocation + 30, 30); exteriorNoBorderDisc.BackColor = Color.Coral; addElementResult = pdfPage.AddElement(exteriorNoBorderDisc); CircleElement interiorNoBorderDisc = new CircleElement(xLocation + 380, yLocation + 30, 15); interiorNoBorderDisc.BackColor = Color.White; pdfPage.AddElement(interiorNoBorderDisc); // Add a simple disc CircleElement simpleDisc = new CircleElement(xLocation + 450, yLocation + 30, 30); simpleDisc.BackColor = Color.Green; addElementResult = pdfPage.AddElement(simpleDisc); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Add Ellipse Elements // Add section title xLocation -= 5; yLocation += 10; titleTextElement = new TextElement(xLocation, yLocation, "Ellipse Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Add an Ellipse Element with default settings EllipseElement ellipseElement = new EllipseElement(xLocation + 50, yLocation + 30, 50, 30); addElementResult = pdfPage.AddElement(ellipseElement); // Add an Ellipse Element with background color and line color EllipseElement ellipseWithBackgroundAndBorder = new EllipseElement(xLocation + 160, yLocation + 30, 50, 30); ellipseWithBackgroundAndBorder.BackColor = Color.LightGray; ellipseWithBackgroundAndBorder.ForeColor = Color.Green; addElementResult = pdfPage.AddElement(ellipseWithBackgroundAndBorder); // Create an ellipse from multiple Ellipse Arc Elements EllipseArcElement ellipseArcElement1 = new EllipseArcElement(xLocation + 220, yLocation, 100, 60, 0, 100); ellipseArcElement1.ForeColor = Color.Coral; ellipseArcElement1.LineStyle.LineWidth = 3; addElementResult = pdfPage.AddElement(ellipseArcElement1); EllipseArcElement ellipseArcElement2 = new EllipseArcElement(xLocation + 220, yLocation, 100, 60, 100, 100); ellipseArcElement2.ForeColor = Color.Blue; ellipseArcElement2.LineStyle.LineWidth = 3; addElementResult = pdfPage.AddElement(ellipseArcElement2); EllipseArcElement ellipseArcElement3 = new EllipseArcElement(xLocation + 220, yLocation, 100, 60, 180, 100); ellipseArcElement3.ForeColor = Color.Green; ellipseArcElement3.LineStyle.LineWidth = 3; addElementResult = pdfPage.AddElement(ellipseArcElement3); EllipseArcElement ellipseArcElement4 = new EllipseArcElement(xLocation + 220, yLocation, 100, 60, 270, 100); ellipseArcElement4.ForeColor = Color.Violet; ellipseArcElement4.LineStyle.LineWidth = 3; addElementResult = pdfPage.AddElement(ellipseArcElement4); // Create an ellipse from multiple Ellipse Slice Elements EllipseSliceElement ellipseSliceElement1 = new EllipseSliceElement(xLocation + 330, yLocation, 100, 60, 0, 90); ellipseSliceElement1.BackColor = Color.Coral; addElementResult = pdfPage.AddElement(ellipseSliceElement1); EllipseSliceElement ellipseSliceElement2 = new EllipseSliceElement(xLocation + 330, yLocation, 100, 60, 90, 90); ellipseSliceElement2.BackColor = Color.Blue; addElementResult = pdfPage.AddElement(ellipseSliceElement2); EllipseSliceElement ellipseSliceElement3 = new EllipseSliceElement(xLocation + 330, yLocation, 100, 60, 180, 90); ellipseSliceElement3.BackColor = Color.Green; addElementResult = pdfPage.AddElement(ellipseSliceElement3); EllipseSliceElement ellipseSliceElement4 = new EllipseSliceElement(xLocation + 330, yLocation, 100, 60, 270, 90); ellipseSliceElement4.BackColor = Color.Violet; addElementResult = pdfPage.AddElement(ellipseSliceElement4); // Add an Ellipse Element with background EllipseElement ellipseWithBackground = new EllipseElement(xLocation + 490, yLocation + 30, 50, 30); ellipseWithBackground.BackColor = Color.Green; addElementResult = pdfPage.AddElement(ellipseWithBackground); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Add Rectangle Elements // Add section title xLocation -= 5; yLocation += 10; titleTextElement = new TextElement(xLocation, yLocation, "Rectangle Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Add a Rectangle Element with default settings RectangleElement rectangleElement = new RectangleElement(xLocation, yLocation, 100, 60); addElementResult = pdfPage.AddElement(rectangleElement); // Add a Rectangle Element with background color and dotted line RectangleElement rectangleElementWithDottedLine = new RectangleElement(xLocation + 110, yLocation, 100, 60); rectangleElementWithDottedLine.BackColor = Color.LightGray; rectangleElementWithDottedLine.ForeColor = Color.Green; rectangleElementWithDottedLine.LineStyle.LineDashStyle = LineDashStyle.Dot; addElementResult = pdfPage.AddElement(rectangleElementWithDottedLine); // Add a Rectangle Element with background color without border RectangleElement rectangleElementWithoutBorder = new RectangleElement(xLocation + 220, yLocation, 100, 60); rectangleElementWithoutBorder.BackColor = Color.Green; addElementResult = pdfPage.AddElement(rectangleElementWithoutBorder); // Add a Rectangle Element with background color, bold border line and rounded corners RectangleElement rectangleElementWithRoundedCorners = new RectangleElement(xLocation + 330, yLocation, 100, 60); rectangleElementWithRoundedCorners.BackColor = Color.Coral; rectangleElementWithRoundedCorners.ForeColor = Color.Blue; rectangleElementWithRoundedCorners.LineStyle.LineWidth = 5; rectangleElementWithRoundedCorners.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin; addElementResult = pdfPage.AddElement(rectangleElementWithRoundedCorners); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Add Polygon Elements // Add section title xLocation -= 5; yLocation += 10; titleTextElement = new TextElement(xLocation, yLocation, "Polygon Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; PointF[] polygonElementPoints = new PointF[]{ new PointF(xLocation, yLocation + 50), new PointF(xLocation + 50, yLocation), new PointF(xLocation + 100, yLocation + 50), new PointF(xLocation + 50, yLocation + 100) }; // Add a Polygon Element with default settings PolygonElement polygonElement = new PolygonElement(polygonElementPoints); addElementResult = pdfPage.AddElement(polygonElement); polygonElementPoints = new PointF[]{ new PointF(xLocation + 110, yLocation + 50), new PointF(xLocation + 160, yLocation), new PointF(xLocation + 210, yLocation + 50), new PointF(xLocation + 160, yLocation + 100) }; // Add a Polygon Element with background color and border polygonElement = new PolygonElement(polygonElementPoints); polygonElement.BackColor = Color.LightGray; polygonElement.ForeColor = Color.Green; polygonElement.LineStyle.LineDashStyle = LineDashStyle.Dot; addElementResult = pdfPage.AddElement(polygonElement); polygonElementPoints = new PointF[]{ new PointF(xLocation + 220, yLocation + 50), new PointF(xLocation + 270, yLocation), new PointF(xLocation + 320, yLocation + 50), new PointF(xLocation + 270, yLocation + 100) }; // Add a Polygon Element with background color polygonElement = new PolygonElement(polygonElementPoints); polygonElement.BackColor = Color.Green; addElementResult = pdfPage.AddElement(polygonElement); PointF[] polyFillPoints = new PointF[]{ new PointF(xLocation + 330, yLocation + 50), new PointF(xLocation + 380, yLocation), new PointF(xLocation + 430, yLocation + 50), new PointF(xLocation + 380, yLocation + 100) }; // Add a Polygon Element with background color and rounded line joins PolygonElement polygonElementWithBackgruondColorAndBorder = new PolygonElement(polyFillPoints); polygonElementWithBackgruondColorAndBorder.ForeColor = Color.Blue; polygonElementWithBackgruondColorAndBorder.BackColor = Color.Coral; polygonElementWithBackgruondColorAndBorder.LineStyle.LineWidth = 5; polygonElementWithBackgruondColorAndBorder.LineStyle.LineCapStyle = LineCapStyle.RoundCap; polygonElementWithBackgruondColorAndBorder.LineStyle.LineJoinStyle = LineJoinStyle.RoundJoin; addElementResult = pdfPage.AddElement(polygonElementWithBackgruondColorAndBorder); yLocation = addElementResult.EndPageBounds.Bottom + 3; pdfPage = addElementResult.EndPdfPage; // Add Bezier Curve Elements // Add section title xLocation -= 5; yLocation += 10; titleTextElement = new TextElement(xLocation, yLocation, "Bezier Curve Elements", titleFont); titleTextElement.ForeColor = Color.Black; addElementResult = pdfPage.AddElement(titleTextElement); yLocation = addElementResult.EndPageBounds.Bottom + 10; xLocation += 5; pdfPage = addElementResult.EndPdfPage; // Add a Bezier Curve Element with normal style BezierCurveElement bezierCurveElement = new BezierCurveElement(xLocation, yLocation + 50, xLocation + 50, yLocation, xLocation + 100, yLocation + 100, xLocation + 150, yLocation + 50); bezierCurveElement.ForeColor = Color.Blue; bezierCurveElement.LineStyle.LineWidth = 3; addElementResult = pdfPage.AddElement(bezierCurveElement); // Mark the points controlling the Bezier curve CircleElement controlPoint1 = new CircleElement(xLocation + 200, yLocation + 50, 2); controlPoint1.BackColor = Color.Violet; pdfPage.AddElement(controlPoint1); CircleElement controlPoint2 = new CircleElement(xLocation + 250, yLocation, 2); controlPoint2.BackColor = Color.Violet; pdfPage.AddElement(controlPoint2); CircleElement controlPoint3 = new CircleElement(xLocation + 300, yLocation + 100, 2); controlPoint3.BackColor = Color.Violet; pdfPage.AddElement(controlPoint3); CircleElement controlPoint4 = new CircleElement(xLocation + 350, yLocation + 50, 2); controlPoint4.BackColor = Color.Violet; pdfPage.AddElement(controlPoint4); // Add a Bezier Curve Element with dotted line using the controlling points above bezierCurveElement = new BezierCurveElement(controlPoint1.X, controlPoint1.Y, controlPoint2.X, controlPoint2.Y, controlPoint3.X, controlPoint3.Y, controlPoint4.X, controlPoint4.Y); bezierCurveElement.ForeColor = Color.Green; bezierCurveElement.LineStyle.LineDashStyle = LineDashStyle.Dot; bezierCurveElement.LineStyle.LineWidth = 1; addElementResult = pdfPage.AddElement(bezierCurveElement); // 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(); } finally { // Close the PDF document pdfDocument.Close(); } }