New to Telerik Document Processing? Start a free 30-day trial
How to Draw Figures in PDF documents
Updated on Jun 9, 2026
Environment
| Version | Product | Author |
|---|---|---|
| 2024.1.124 | RadPdfProcessing | Desislava Yordanova |
Description
This article demonstrates how to draw a small figure containing an arc and lines using RadPdfProcessing.
Solution
To draw an arc using the ArcSegment class, follow these steps:
- Create a
Pathobject and set itsIsFilledandIsStrokedproperties totrue. - Create a
PathGeometryobject and set itsFillRuleproperty toFillRule.EvenOdd. - Add a
PathFigureto thePathGeometryand set itsStartPointproperty to the starting point of the figure. - Create an instance of the
ArcSegmentclass and set itsPoint,RadiusX, andRadiusYproperties. ThePointproperty represents the endpoint of the arc, whileRadiusXandRadiusYrepresent the radii for the X and Y coordinates respectively. - Add the
ArcSegmentto theSegmentscollection of thePathFigure. - Set the
Geometryproperty of thePathto thePathGeometry.
Here is an example of how to draw an arc:
csharp
private static void AddArcSegment(RadFixedPage page)
{
Telerik.Windows.Documents.Fixed.Model.Graphics.Path path = page.Content.AddPath();
path.IsFilled = true;
path.IsStroked = true;
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.FillRule = FillRule.EvenOdd;
PathFigure figure = pathGeometry.Figures.AddPathFigure();
figure.StartPoint = new Point(100, 200);
var segment = new ArcSegment()
{
Point = new Point(200, 300),
RadiusX = 20,
RadiusY = 50,
};
figure.Segments.Add(segment);
path.Geometry = pathGeometry;
}
To draw lines, use the LineSegment class. The following example draws a triangle:
csharp
private void AddLineSegment(RadFixedPage page)
{
Telerik.Windows.Documents.Fixed.Model.Graphics.Path path = page.Content.AddPath();
path.IsFilled = false;
path.IsStroked = true;
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.FillRule = FillRule.EvenOdd;
PathFigure figure1 = pathGeometry.Figures.AddPathFigure();
ApplyLine(figure1, new Point(300, 200), new Point(400, 200));
PathFigure figure2 = pathGeometry.Figures.AddPathFigure();
ApplyLine(figure2, new Point(400, 200), new Point(250, 100));
PathFigure figure3 = pathGeometry.Figures.AddPathFigure();
ApplyLine(figure3, new Point(250, 100), new Point(300, 200));
path.Geometry = pathGeometry;
}
private static void ApplyLine(PathFigure figure, Point startPoint, Point endPoint)
{
figure.StartPoint = startPoint;
var segment = new LineSegment
{
Point = endPoint
};
figure.Segments.Add(segment);
}
The following code snippet shows how to use the above methods to produce a PDF document:
csharp
RadFixedDocument fixedDocument = new RadFixedDocument();
RadFixedPage fixedPage = fixedDocument.Pages.AddPage();
AddArcSegment(fixedPage);
AddLineSegment(fixedPage);
PdfFormatProvider provider = new PdfFormatProvider();
string filePath = @"..\..\output.pdf";
File.Delete(filePath);
using (Stream output = File.OpenWrite(filePath))
{
provider.Export(fixedDocument, output);
}
For more information on geometries, figures, and segments, refer to the Geometry article.
The following screenshot shows the result of the combined arc and triangle:
