This C# tutorial demonstrates how to create the Microsoft Doughnut Chart (both 2D and 3D Doughnut Chart), and insert the MS Doughnut Chart as image to PDF Page.

Doughnut chart is a special type of Pie chart, without showing the center parts of graph, and each data take a slice to show. The following C# .NET demo code shows how to create and save Microsoft Doughnut Chart to PDF document programmatically.
Please note, before developers using the chart making code, the MS Chart Control should be referred to your .NET application:

  • System.Windows.Forms.DataVisualization.Charting (for .NET WinForms project)
  • System.Web.UI.DataVisualization.Charting (for ASP.NET application)

Generate and insert Microsoft 2D Doughnut Chart to PDF in C# code.
public static void InsertMSChartToPDF()
    // Create a new PDF document.
    PdfDocument document = new PdfDocument();

    // Create an empty page in this document.
    PdfPage page = document.AddPage();

    // Obtain an XGraphics object to render to
    XGraphics g = XGraphics.FromPdfPage(page);

    // Create doughnut chart stream object
    Stream chartStream = CreateMSDoughnutChart();

    // Convert chart stream to XImage object
    XImage chartImage = XImage.FromStream(chartStream);

    // Insert the chart image to pdf page in any position
    g.DrawImage(chartImage, 50, 50);

    // Save and show the document

public static Stream CreateMSDoughnutChart()
    // Create ms chart object
    Chart chart = new Chart();

    ChartArea chartArea = new ChartArea();
    Series series1 = new Series();
    // Input Data Point
    DataPoint dataPoint1 = new DataPoint(0, 39);
    DataPoint dataPoint2 = new DataPoint(0, 18);
    DataPoint dataPoint3 = new DataPoint(0, 15);
    DataPoint dataPoint4 = new DataPoint(0, 12);
    DataPoint dataPoint5 = new DataPoint(0, 5);

    // Set series1 with data, color, chart type and name
    series1.BorderColor = Color.FromArgb(64, 64, 64, 64);
    series1.ChartType = SeriesChartType.Doughnut;
    series1.BorderWidth = 3;
    series1.Color = Color.FromArgb(180, 65, 140, 240);
    series1.Name = "Series1";
    // Bind series to chart

    // Set chart 3D style
    chartArea.Area3DStyle.Enable3D = false;

    // Bind chart area to chart object

    // Modify chart size
    chart.Size = new Size(400, 300);

    // Render chart graphics to stream
    MemoryStream ms = new MemoryStream();
    chart.SaveImage(ms, ChartImageFormat.Png);
    return ms;
Create and save MS 3D Doughnut Chart to PDF in C# code.

All the step and code are the same as above, only need change the chartArea.Area3DStyle.Enable3D = false; in the "CreateMSDoughnutChart()" to the C# code below.

chartArea.Area3DStyle.Enable3D = true;
chartArea.Area3DStyle.Inclination = 15;
chartArea.Area3DStyle.IsRightAngleAxes = false;
chartArea.Area3DStyle.Perspective = 10;
chartArea.Area3DStyle.Rotation = 10;
chartArea.BackColor = Color.WhiteSmoke;            

More MS Chart to PDF tutorial