Spire. Presentation for. NET

.NET PowerPoint API - Processing PPT, PPS, PPTX, PPSX in C#, VB.NET, ASP.NET

A PowerPoint Compatible Library without Microsoft PowerPoint

This is the list of changelogs of Spire.Presentation New release and hotfix. You can get the detail information of each version's new features and bug solutions.

Download Spire.Presentation to start a free trial:

Hot Fix Version: 7.5.3

Category ID Description
New feature SPIRE.PPT-1933 Adds a method of getting text content of a slide,slide.GetAllTextFrame()
Presentation ppt = new Presentation();
        ppt.LoadFromFile(inputFile);
foreach (ISlide slide in ppt.Slides)
{
    ArrayList arrayList = slide.GetAllTextFrame();
    foreach (String text in arrayList)
    {
        Console.Write(text);
     }
}
Note: don't include the text in chartor image.
New feature SPIRE.PPT-1948 Supports setting the ChartDataLabel with text ranges.
Bug SPIRE.PPT-1907 Fixes the issue that the position of the text in the text box is incorrect when converting PPT to PDF
Bug SPIRE.PPT-1932 Fixes the issue that the application threw System.NullReferenceException when getting the chart's hidden source data.
Bug SPIRE.PPT-1953 Fixes the issue that the font size of the original text is changed after the axis label is reset.

Hot Fix Version: 7.4.5

Category ID Description
New feature SPIREPPT-1905 Supports getting the number format of ChartData.
Presentation ppt = new Presentation();
ppt.LoadFromFile(@"input.pptx", Spire.Presentation.FileFormat.Pptx2013);
IChart chart = ppt.Slides[1].Shapes[0] as IChart;
var numberFormat = chart.ChartData[1, 1].NumberFormat;
Bug SPIREPPT-518 Fixes the issue that the text line format was lost after converting PowerPoint to PDF.
Bug SPIREPPT-939 Fixes the issue that the compared result was different when comparing two PowerPoint files themselves have the same master. 
Bug SPIREPPT-1721 Fixes the issue that the previous series format was lost after adding new series to the Chart.
Bug SPIREPPT-1844 Fixes the issue that the application threw "System.NullReferenceException" when saving the PowerPoint file that copied slides.
Bug SPIREPPT-1859 Fixes the issue that the application threw "System.ArgumentException" when adding Html to PowerPoint file.
Bug SPIREPPT-1872 Fixes the issue that the content format was incorrect after converting PowerPoint file to PDF.
Bug SPIREPPT-1883 Fixes the issue that the Series.Distance setting didn't take effect.
Bug SPIREPPT-1889 Fixes the issue that the content format was incorrect after converting PowerPoint file to image when region sets to German (DE). 
Bug SPIREPPT-1898 Fixes the issue that the application threw "System.NullReferenceException" when getting font color of the table text.
Bug SPIREPPT-1904 Fixes the issue that the saved background image was incorrect. 
Bug SPIREPPT-1913 Fixes the issue that the application threw "System.ArgumentOutOfRangeException" when adding Html to PowerPoint file

Hot Fix Version: 7.3.1

Category ID Description
Bug SPIREPPT-861 Fixes the issue that the effect of animation effect was incorrect after adding it for a chart shape.
Bug SPIREPPT-1828 Fixes the issue that the Arabic text displayed incorrectly after converting PPTX to PDF.
Bug SPIREPPT-1838 Fixes the issue that the content was incorrect after converting PPTX to PDF.
Bug SPIREPPT-1858 Fixes the issue that the application threw "DocumentReadException" when loading a PPTX file.
Bug SPIREPPT-1860 Fixes the issue that the application threw "InvalidOperationException" when converting a slide to image in Linux system.
Bug SPIREPPT-1861 Fixes the issue that the generated PPTX file was unable to be opened after changing the chart data. 

Hot Fix Version: 7.2.5

Category ID Description
New feature SPIREPPT-1837 Supports creating "Map" chart.
Presentation ppt = new Presentation();
 IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Map, new RectangleF(50, 50, 450, 450), false);
 chart.ChartData[0, 1].Text = "series";
 string[] countries = { "China", "Russia", "France", "Mexico", "United States", "India", "Australia" };
 for (int i = 0; i < countries.Length; i++)
 {
     chart.ChartData[i + 1, 0].Text = countries[i];
 }
 int[] values = { 32, 20, 23, 17, 18, 6, 11 };
 for (int i = 0; i < values.Length; i++)
 {
     chart.ChartData[i + 1, 1].NumberValue = values[i];
 }
 chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, 1];
 chart.Categories.CategoryLabels = chart.ChartData[1, 0, 7, 0];
 chart.Series[0].Values = chart.ChartData[1, 1, 7, 1];
 ppt.SaveToFile("output.pptx", Spire.Presentation.FileFormat.Pptx2013);
New feature SPIREPPT-1845 Supports modifying the number format for chart source data.
Presentation ppt = new Presentation();
 ppt.LoadFromFile(@"input.pptx");

 ISlide slide = ppt.Slides[2];
 foreach (IShape shape in slide.Shapes)
 {
     if (shape is IChart)
     {
         IChart chart = shape as IChart;
         if (chart.Type.Equals(ChartType.BarClustered))
         {
             for (int i = 1; i < 5; i++)
             {
                 chart.ChartData[i, 1].NumberFormat = "#,##0.00";
             }
         }
     }
 }
 ppt.SaveToFile("result.pptx", Spire.Presentation.FileFormat.Pptx2013);
Bug SPIREPPT-1383 Fixes the issue that the converted PDF file content was not correct after modifying the shape text.
Bug SPIREPPT-1833 Fixes the issue that some content was incorrect after converting PPT to PDF.

Hot Fix Version: 7.1

Category ID Description
New feature SPIREPPT-1163 Supports creating "BoxAndWhisker" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.BoxAndWhisker, new RectangleF(50, 50, 500, 400), false);
string[] seriesLabel = { "Series 1", "Series 2", "Series 3" };
for (int i = 0; i < seriesLabel.Length; i++)
{
    chart.ChartData[0, i + 1].Text = "Series 1";
}
string[] categories = {"Category 1", "Category 1", "Category 1", "Category 1", "Category 1", "Category 1", "Category 1",
                "Category 2", "Category 2", "Category 2", "Category 2", "Category 2", "Category 2",
                "Category 3", "Category 3", "Category 3", "Category 3", "Category 3"};
for (int i = 0; i < categories.Length; i++)
{
    chart.ChartData[i + 1, 0].Text = categories[i];
}
double[,] values = new double[18, 3]{{-7,-3,-24},{-10,1,11},{-28,-6,34},{47,2,-21},{35,17,22},{-22,15,19},{17,-11,25},
                            {-30,18,25},{49,22,56},{37,22,15},{-55,25,31},{14,18,22},{18,-22,36},{-45,25,-17},
                            {-33,18,22},{18,2,-23},{-33,-22,10},{10,19,22}};
for (int i = 0; i < seriesLabel.Length; i++)
{
    for (int j = 0; j < categories.Length; j++)
    {
        chart.ChartData[j + 1, i + 1].NumberValue = values[j, i];
    }
}
chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, seriesLabel.Length];
chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];
chart.Series[0].Values = chart.ChartData[1, 1, categories.Length, 1];
chart.Series[1].Values = chart.ChartData[1, 2, categories.Length, 2];
chart.Series[2].Values = chart.ChartData[1, 3, categories.Length, 3];
chart.Series[0].ShowInnerPoints = false;
chart.Series[0].ShowOutlierPoints = true;
chart.Series[0].ShowMeanMarkers = true;
chart.Series[0].ShowMeanLine = true;
chart.Series[0].QuartileCalculationType = QuartileCalculation.ExclusiveMedian;
chart.Series[1].ShowInnerPoints = false;
chart.Series[1].ShowOutlierPoints = true;
chart.Series[1].ShowMeanMarkers = true;
chart.Series[1].ShowMeanLine = true;
chart.Series[1].QuartileCalculationType = QuartileCalculation.InclusiveMedian;
chart.Series[2].ShowInnerPoints = false;
chart.Series[2].ShowOutlierPoints = true;
chart.Series[2].ShowMeanMarkers = true;
chart.Series[2].ShowMeanLine = true;
chart.Series[2].QuartileCalculationType = QuartileCalculation.ExclusiveMedian;
chart.HasLegend = true;
chart.ChartTitle.TextProperties.Text = "BoxAndWhisker";
chart.ChartLegend.Position = ChartLegendPositionType.Top;
ppt.SaveToFile(outputFile, FileFormat.Pptx2013);
ppt.Dispose();
New feature SPIREPPT-1163 Supports creating "Funnel" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Funnel, new RectangleF(50, 50, 550, 400), false);
chart.ChartData[0, 1].Text = "Series 1";
string[] categories = { "Website Visits	", "Download", "Uploads", "Requested price", "Invoice sent", "Finalized" };
for (int i = 0; i < categories.Length; i++)
{
    chart.ChartData[i + 1, 0].Text = categories[i];
}
double[] values = { 50000, 47000, 30000, 15000, 9000, 5600 };
for (int i = 0; i < values.Length; i++)
{
    chart.ChartData[i + 1, 1].NumberValue = values[i];
}
chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, 1];
chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];
chart.Series[0].Values = chart.ChartData[1, 1, values.Length, 1];
chart.ChartTitle.TextProperties.Text = "Funnel";
ppt.SaveToFile(outputFile, FileFormat.PPT);
ppt.Dispose();
New feature SPIREPPT-1163 Supports creating "Histogram" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Histogram, new RectangleF(50, 50, 500, 400), false);
chart.ChartData[0, 0].Text = "Series 1";
double[] values = { 1, 1, 1, 3, 3, 3, 3, 5, 5, 5, 8, 8, 8, 9, 9, 9, 12, 12, 13, 13, 17, 17, 17, 19, 19, 19, 25, 25, 25, 25, 25, 25, 25, 25, 29, 29, 29, 29, 32, 32, 33, 33, 35, 35, 41, 41, 44, 45, 49, 49 };
for (int i = 0; i < values.Length; i++)
{
    chart.ChartData[i + 1, 1].NumberValue = values[i];
}
chart.Series.SeriesLabel = chart.ChartData[0, 0, 0, 0];
chart.Series[0].Values = chart.ChartData[1, 0, values.Length, 0];
chart.PrimaryCategoryAxis.NumberOfBins = 7;
chart.PrimaryCategoryAxis.GapWidth = 20;
chart.ChartTitle.TextProperties.Text = "Histogram";
chart.ChartLegend.Position = ChartLegendPositionType.Bottom;
ppt.SaveToFile(outputFile, FileFormat.PPT);
New feature SPIREPPT-1163 Supports creating "Pareto" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.Pareto, new RectangleF(50, 50, 500, 400), false);
chart.ChartData[0, 1].Text = "Series 1";
string[] categories = { "Category 1", "Category 2", "Category 4", "Category 3", "Category 4", "Category 2", "Category 1",
    "Category 1", "Category 3", "Category 2", "Category 4", "Category 2", "Category 3",
    "Category 1", "Category 3", "Category 2", "Category 4", "Category 1", "Category 1",
    "Category 3", "Category 2", "Category 4", "Category 1", "Category 1", "Category 3",
    "Category 2", "Category 4", "Category 1"};
for (int i = 0; i < categories.Length; i++)
{
    chart.ChartData[i + 1, 0].Text = categories[i];
}
double[] values = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
for (int i = 0; i < values.Length; i++)
{
    chart.ChartData[i + 1, 1].NumberValue = values[i];
}
chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, 1];
chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];
chart.Series[0].Values = chart.ChartData[1, 1, values.Length, 1];
chart.PrimaryCategoryAxis.IsBinningByCategory = true;
chart.Series[1].Line.FillFormat.FillType = FillFormatType.Solid;
chart.Series[1].Line.FillFormat.SolidFillColor.Color = Color.Red;
chart.ChartTitle.TextProperties.Text = "Pareto";
chart.HasLegend = true;
chart.ChartLegend.Position = ChartLegendPositionType.Bottom;
ppt.SaveToFile(outputFile, FileFormat.PPT);
ppt.Dispose();
New feature SPIREPPT-1163 Supports creating "SunBurst" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.SunBurst, new RectangleF(50, 50, 500, 400), false);
chart.ChartData[0, 3].Text = "Series 1";
string[,] categories = {{"Branch 1","Stem 1","Leaf 1"},{"Branch 1","Stem 1","Leaf 2"},{"Branch 1","Stem 1", "Leaf 3"},
      {"Branch 1","Stem 2","Leaf 4"},{"Branch 1","Stem 2","Leaf 5"},{"Branch 1","Leaf 6",null},{"Branch 1","Leaf 7", null},
      {"Branch 2","Stem 3","Leaf 8"},{"Branch 2","Leaf 9",null},{"Branch 2","Stem 4","Leaf 10"},{"Branch 2","Stem 4","Leaf 11"},
      {"Branch 2","Stem 5","Leaf 12"},{"Branch 3","Stem 5","Leaf 13"},{"Branch 3","Stem 6","Leaf 14"},{"Branch 3","Leaf 15",null}};
for (int i = 0; i < 15; i++)
{
     for (int j = 0; j < 3; j++)
         chart.ChartData[i + 1, j].Value = categories[i, j];
}
double[] values = { 17, 23, 48, 22, 76, 54, 77, 26, 44, 63, 10, 15, 48, 15, 51 };
for (int i = 0; i < values.Length; i++)
{
     chart.ChartData[i + 1, 3].NumberValue = values[i];
}
chart.Series.SeriesLabel = chart.ChartData[0, 3, 0, 3];
chart.Categories.CategoryLabels = chart.ChartData[1, 0, values.Length, 2];
chart.Series[0].Values = chart.ChartData[1, 3, values.Length, 3];
chart.Series[0].DataLabels.CategoryNameVisible = true;
chart.ChartTitle.TextProperties.Text = "SunBurst";
chart.HasLegend = true;
chart.ChartLegend.Position = ChartLegendPositionType.Top;
ppt.SaveToFile(outputFile, FileFormat.PPT);
ppt.Dispose();
New feature SPIREPPT-1163 Supports creating "TreeMap" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.TreeMap, new RectangleF(50, 50, 500, 400), false);
chart.ChartData[0, 3].Text = "Series 1";
string[,] categories = {{"Branch 1","Stem 1","Leaf 1"},{"Branch 1","Stem 1","Leaf 2"},{"Branch 1","Stem 1", "Leaf 3"},
     {"Branch 1","Stem 2","Leaf 4"},{"Branch 1","Stem 2","Leaf 5"},{"Branch 1","Stem 2","Leaf 6"},{"Branch 1","Stem 2","Leaf 7"},
     {"Branch 2","Stem 3","Leaf 8"},{"Branch 2","Stem 3","Leaf 9"},{"Branch 2","Stem 4","Leaf 10"},{"Branch 2","Stem 4","Leaf 11"},
     {"Branch 2","Stem 5","Leaf 12"},{"Branch 3","Stem 5","Leaf 13"},{"Branch 3","Stem 6","Leaf 14"},{"Branch 3","Stem 6","Leaf 15"}};
for (int i = 0; i < 15; i++)
{
    for (int j = 0; j < 3; j++)
        chart.ChartData[i + 1, j].Text = categories[i, j];
}
double[] values = { 17, 23, 48, 22, 76, 54, 77, 26, 44, 63, 10, 15, 48, 15, 51 };
for (int i = 0; i < values.Length; i++)
{
    chart.ChartData[i + 1, 3].NumberValue = values[i];
}
chart.Series.SeriesLabel = chart.ChartData[0, 3, 0, 3];
chart.Categories.CategoryLabels = chart.ChartData[1, 0, values.Length, 2];
chart.Series[0].Values = chart.ChartData[1, 3, values.Length, 3];
chart.Series[0].DataLabels.CategoryNameVisible = true;
chart.Series[0].TreeMapLabelOption = TreeMapLabelOption.Banner;
chart.ChartTitle.TextProperties.Text = "TreeMap";
chart.HasLegend = true;
chart.ChartLegend.Position = ChartLegendPositionType.Top;
ppt.SaveToFile(outputFile, FileFormat.PPT);
New feature SPIREPPT-1163 Supports creating "WaterFall" chart.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.WaterFall, new RectangleF(50, 50, 500, 400), false);
chart.ChartData[0, 1].Text = "Series 1";
string[] categories = { "Category 1", "Category 2", "Category 3", "Category 4", "Category 5", "Category 6", "Category 7" };
for (int i = 0; i < categories.Length; i++)
{
    chart.ChartData[i + 1, 0].Text = categories[i];
}
double[] values = { 100, 20, 50, -40, 130, -60, 70 };
for (int i = 0; i < values.Length; i++)
{
    chart.ChartData[i + 1, 1].NumberValue = values[i];
}
chart.Series.SeriesLabel = chart.ChartData[0, 1, 0, 1];
chart.Categories.CategoryLabels = chart.ChartData[1, 0, categories.Length, 0];
chart.Series[0].Values = chart.ChartData[1, 1, values.Length, 1];
ChartDataPoint chartDataPoint = new ChartDataPoint(chart.Series[0]);
chartDataPoint.Index = 2;
chartDataPoint.SetAsTotal = true;
chart.Series[0].DataPoints.Add(chartDataPoint);
ChartDataPoint chartDataPoint2 = new ChartDataPoint(chart.Series[0]);
chartDataPoint2.Index = 5;
chartDataPoint2.SetAsTotal = true;
chart.Series[0].DataPoints.Add(chartDataPoint2);
chart.Series[0].ShowConnectorLines = true;
chart.Series[0].DataLabels.LabelValueVisible = true;
chart.ChartLegend.Position = ChartLegendPositionType.Right;
chart.ChartTitle.TextProperties.Text = "WaterFall";
ppt.SaveToFile(outputFile, FileFormat.PPT);
ppt.Dispose();
Bug SPIREPPT-643 Fixes the issue that the bullets were lost after converting PowerPoint to PDF.
Bug SPIREPPT-1765
SPIREPPT-1802
SPIREPPT-1814
Fixes the issue that the content was incorrect after saving shape to image.
Bug SPIREPPT-1773 Fixes the issue that the obtained text font of the table cell was incorrect.
Bug SPIREPPT-1782 Optimized the cost time of converting PowerPoint file to image. 
Bug SPIREPPT-1784 Fixes the issue that the application threw "System.NullReferenceException" when loading PowerPoint file.
Bug SPIREPPT-1795 Fixes the issue that the obtained text font was incorrect.
Bug SPIREPPT-1815 Fixes the issue that the obtained duration of Animation was incorrect.
Bug SPIREPPT-1816 Fixes the issue that the application threw "System.NullReferenceException" when saving shape to image.
Bug SPIREPPT-1817 Fixes the issue that the memory had not been released when using IsPasswordProtected. 
Bug SPIREPPT-1819 Fixes the issue that the application threw "OutOfMemoryException" when loading PowerPoint file.
Bug SPIREPPT-1824 Fixes the issue that the application threw "System.NullReferenceException" when saving chart to image.
Bug SPIREPPT-1829 Fixes the issue that the license validation was affected when setting "false" for "generatePublisherEvidence".

Hot Fix Version: 6.12.4

Category ID Description
New feature SPIREPPT-1699 Supports getting the type and color of slide background.
ISlide sld = ppt.Slides[0] as ISlide;
FillFormat bg = sld.DisplaySlideBackground.GetBackgroundFillFormat(sld as ActiveSlide);
switch (bg.FillType)
{
    case FillFormatType.Solid:
        sb.AppendLine("type:" + bg.FillType + "\tcolor:" + bg.SolidColor.Color);
        break;
    case FillFormatType.Gradient:
        sb.AppendLine("type:" + bg.FillType);
        foreach (GradientStop stop in bg.Gradient.GradientStops)
        {
            sb.AppendLine("position:" + stop.Position + "\tcolor:" + stop.Color.Color);
        }
        break;
    default:
        sb.AppendLine("type:" + bg.FillType);
        break;
}
New feature SPIREPPT-1766 Supports adding the setting to convert high quality images.
Presentation.HighQualityImage = true;
Bug SPIREPPT-1748 Optimized the memory consumption when operating PowerPoint file image.
Bug SPIREPPT-1752 Fixes the issue that the application threw "System.NullReferenceException" when getting audio data. 
Bug SPIREPPT-1753 Fixes the issue that the grid line color obtained was incorrect.
Bug SPIREPPT-1756 Fixes the issue that the "Duration" time obtained was incorrect.
Bug SPIREPPT-1757 Fixes the issue that the obtained display color of table cell was incorrect.
Bug SPIREPPT-1758 Fixes the issue that the color of math equation was lost after saving slide as image.
Bug SPIREPPT-1759 Fixes the issue that the content was incorrect after saving SmartArt to image.
Bug SPIREPPT-1764 Fixes the issue that the application threw "System.IndexOutOfRangeException" when saving shape to image. 
Bug SPIREPPT-1768 Fixes the issue that the returned value of "HasBullet" was wrong .
Bug SPIREPPT-1770 Fixes the issue that the math equation lost after converting PowerPoint to PDF.
Bug SPIREPPT-1771 Fixes the issue that the application threw "System.NullReferenceException" when encrypting a PowerPoint file that contains math equations. 
Bug SPIREPPT-1772 Fixes the issue that the obtained display color of table cell text was incorrect.
Bug SPIREPPT-1775 Fixes the issue that the obtained value of "VerticalTextType" was incorrect.
Bug SPIREPPT-1783 Fixes the issue that some content was not clear after saving PowerPoint to image.
Bug SPIREPPT-1785 Fixes the issue that the comments weren't able to obtained.
Bug SPIREPPT-1796 Fixes the issue that the leader lines of Datalabel were incorrect when converting PowerPoint to PDF. 
Bug SPIREPPT-1800 Fixes the issue that the obtained PresetClassType value of animation was incorrect.
Bug SPIREPPT-1801 Fixes the issue that the color of chart trend line was lost after saving PowerPoint to PDF.

Hot Fix Version: 6.11.4

Category ID Description
New feature SPIREPPT-1744 Supports getting the display color of the table cell border.
table[0, 0].BorderLeftDisplayColor;
table[0, 0].BorderTopDisplayColor;
table[0, 0].BorderRightDisplayColor;
table[0, 0].BorderBottomDisplayColor; 
Bug SPIREPPT-1723 Fixes the issue that the image converted from PowerPoint formula was blurred
Bug SPIREPPT-1732 Fixes the issue that the symbol lost when converting PowerPoint to PDF
Bug SPIREPPT-1738 Fixes the issue that the obtained font size of the text was incorrect
Bug SPIREPPT-1739 Fixes the issue that the application threw "Spire.Presentation.AppException" when loading a PPT file.
Bug SPIREPPT-1743 Fixes the issue that the application threw "System.NullReferenceException" when replacing text
Bug SPIREPPT-1751 Fixes the issue that the application threw "System.ArgumentException" when converting group shpes to image

Hot Fix Version: 6.11.2

Category ID Description
New feature SPIREPPT-1687 Supports getting the fill color of table cells.
table.TableRows[i][j].DisplayColor;
New feature SPIREPPT-1701 Supports setting the data label range for charts.
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.ColumnStacked, new RectangleF(100, 100, 500, 400));
CellRange cellRange = chart.ChartData["F1"];
cellRange.Text = "aaa";
cellRange = chart.ChartData["F2"];
cellRange.Text = "bbb";
cellRange = chart.ChartData["F3"];
cellRange.Text = "ccc";
cellRange = chart.ChartData["F4"];
cellRange.Text = "ddd";
chart.Series[0].DataLabelRanges = chart.ChartData["F1", "F4"];
ChartDataLabel dataLabel1 = chart.Series[0].DataLabels.Add();
dataLabel1.ID = 0;
dataLabel1.LabelValueVisible = true;
dataLabel1.ShowDataLabelsRange = true;
New feature SPIREPPT-1707 Supports to get the path data of the custom animation.
foreach (AnimationEffect effect in shape.Slide.Timeline.MainSequence)
{
    if (effect.ShapeTarget.Equals(shape as Spire.Presentation.Shape))
    {
        MotionPath path = ((AnimationMotion)effect.CommonBehaviorCollection[0]).Path;
        foreach (MotionCmdPath motionCmdPath in path)
        {
            PointF[] points = motionCmdPath.Points;
            MotionCommandPathType type = motionCmdPath.CommandType;
        }
    }
}
New feature SPIREPPT-1708 Adds a new method "IShape.SaveAsImage()" to convert shape to images.
Image image = shape.SaveAsImage();
Bug SPIREPPT-1453 Fixes the issue that the newly inserted shape did not have default line width and color.
Bug SPIREPPT-1667 Fixes the issue that the images were not clear enough after converting PPT to images.
Bug SPIREPPT-1699 Fixes the issue that it couldn't get the background color of the theme.
Bug SPIREPPT-1709 Fixes the issue that the content was incorrect after converting shape to image.
Bug SPIREPPT-1717 Fixes the issue that it didn't get the correct display color of the TextRange.
Bug SPIREPPT-1731 Fixes the issue that the inserted clustered column chart was incorrect.

Hot Fix Version: 6.10.2

Category ID Description
New feature SPIREPPT-1698 Supports getting the target slide of a hyperlink.
Presentation ppt = new Presentation();
ppt.LoadFromFile(inputFile);
IAutoShape shape = ppt.Slides[1].Shapes[0] as IAutoShape;
if (shape.Click.ActionType == HyperlinkActionType.GotoSlide)
{
    ISlide targetSlide = shape.Click.TargetSlide;
    Console.WriteLine("index = " + targetSlide.SlideNumber);
}
Bug SPIREPPT-1684 Fixes the issue that the OLE object couldn't be opened after loading and saving the file. 
Bug SPIREPPT-1700 Fixes the issue that the content was cut off after converting shape to images.
Bug SPIREPPT-1702 Fixes the issue that it didn't get the correct text color.
Bug SPIREPPT-1703 Fixes the issue that it didn't get the correct font size of the table text.
Bug SPIREPPT-1704 Fixes the issue that it didn't get the correct fill color for the chart series.
Bug SPIREPPT-1705 Fixes the issue that it didn't get the correct duration for the slide show transition.
Bug SPIREPPT-1706 Fixes the issue that part of the content was missing after converting equations to images.

Hot Fix Version: 6.9.5

Category ID Description
Bug SPIREPPT-1609
SPIREPPT-1692
Fixes the issue that the OLE icon was not displayed when opened with WPS.
Bug SPIREPPT-1690 Fixes the issue that it failed to get the correct height of the table cells.
Bug SPIREPPT-1691 Fixes the issue that the application threw the error "Object reference not set to an instance of an object" when loading the PPT file after adding math equations.
Bug SPIREPPT-1693 Fixes the issue that it failed to get the correct text color of the chart legend.