Browse our Products

Aspose.Slides for .NET 19.4 Release Notes

KeySummaryCategory
SLIDESNET-40010Setter for ExternalWorkbookPath of ExternalWorkbook in chartsInvestigation
SLIDESNET-41018Supporting of external Excel workbooksFeature
SLIDESNET-40897Support for OpenDocument encryptionFeature
SLIDESNET-40938PDF text is not searchable when exported to PDF with NotesEnhancement
SLIDESNET-40917The rendition to PDF format occupies too much RAM memoryEnhancement
SLIDESNET-41014The textbox formatting lost in PDF outputBug
SLIDESNET-40981Presentation save problemBug
SLIDESNET-40887Chart Title color off when exporting to PDFBug
SLIDESNET-40986ODP not properly converted to PPTXBug
SLIDESNET-40970Hyperlink in PPT is changed after load and saveBug
SLIDESNET-41005Exception on loading PresentationBug
SLIDESNET-40947Exception on converting PPT file to PDFBug
SLIDESNET-40963Exception when setting notes textBug
SLIDESNET-40959NullReferenceException on generating SVGBug
SLIDESNET-41002Conversion from PPT to PPTX - issue with missing hyperlinksBug
SLIDESNET-40973NullReferenceException on cloningBug
SLIDESNET-40556The WordArt is improperly rendered inBug
SLIDESNET-39610Blurry effect removed when converting to imageBug
SLIDESNET-40998HeadingPairs and TitlesOfParts tags are lost after conversion legacy PPTBug
SLIDESNET-41011Paragraph portion lost when cloning a slide with library 19.2Bug
SLIDESNET-40967Crop-circle image is not properly written as SVGBug
SLIDESNET-40997PPTX not properly converted to PDFBug
SLIDESNET-35217PPTX to TIFF: Reflections/shadows not present in exported TIFF fileBug
SLIDESNET-40749High memory consumption on generating PDFBug
SLIDESNET-40837High memory consumption while converting big PPTX to PDFBug
SLIDESNET-34164Shadow effects lost in generated PDFBug
SLIDESNET-41003A bug during conversion from PPT to PPTXBug
SLIDESNET-40370Slides are appearing Blank or with Cross Sign in the Converted PDF DocumentBug
SLIDESNET-40987ODP file not properly converted to PPTXBug
SLIDESNET-40995Wrong rendering imageBug
SLIDESNET-41004An exception raises while loading the presentationBug
SLIDESNET-40951PPTX to PPTX - x-axis labels are missingBug
SLIDESNET-40985ODP not properly converted to PPTXBug
SLIDESNET-41030Chart thumbnail is blankBug
SLIDESNET-40886Presentation not rendering to SVG properlyBug
SLIDESNET-41001Conversion from PPT to PPTX - issue with shape renderingBug
SLIDESNET-40825Charts are improperly rendered in generated PDFBug
SLIDESNET-40637WMF image in PPT is getting biggerBug
SLIDESNET-40957NotImplementedException:LoadBrushElementData:ignorePressure on loading PPTXBug
SLIDESNET-40965Connector is not properly written as SVGBug

Public API Changes

Support of external workbooks as a data source for charts has been added.

Since version 19.4 Aspose.Slides supports external workbooks as a data source for charts.

IResourceLoadingCallback can be used to manage external workbook loading.

  1. Chart data in external workbooks can be edited the same way it works for internal workbooks. If external workbook can’t be loaded an exception is thrown.
using (Presentation pres = new Presentation("presentation.pptx"))
{
    IChart chart = pres.Slides[0].Shapes[0] as IChart;
    ChartData chartData = (ChartData)chart.ChartData;

    Assert.AreEqual(chartData.DataSourceType, ChartDataSourceType.ExternalWorkbook);

    chartData.Series[0].DataPoints[0].Value.AsCell.Value = 100;
    pres.Save(outPptxFileName, SaveFormat.Pptx);
}
  1. An external workbook can be assigned to a chart as a data source. For this purpose IChartData.SetExternalWorkbook(string workbookPath) method has been added.

SetExternalWorkbook() method can be also used to update a path to the external workbook if it has been moved. *Workbooks placed on remote resources unavailable for data editing but still can be assigned as an external data source. *If the relative path was provided for an external workbook, it converts to full path automatically.

using (Presentation pres = new Presentation())
{
    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Pie, 50, 50, 400, 600, false);
    IChartData chartData = chart.ChartData;

    Assert.AreEqual(chartData.DataSourceType, ChartDataSourceType.InternalWorkbook);

    chartData.SetExternalWorkbook("externalWorkbook.xlsx");

    Assert.AreEqual(chartData.DataSourceType, ChartDataSourceType.ExternalWorkbook);

    chartData.Series.Add(chartData.ChartDataWorkbook.GetCell(0, "B1"), ChartType.Pie);
    chartData.Series[0].DataPoints.AddDataPointForPieSeries(chartData.ChartDataWorkbook.GetCell(0, "B2"));
    chartData.Series[0].DataPoints.AddDataPointForPieSeries(chartData.ChartDataWorkbook.GetCell(0, "B3"));
    chartData.Series[0].DataPoints.AddDataPointForPieSeries(chartData.ChartDataWorkbook.GetCell(0, "B4"));

    chartData.Categories.Add(chartData.ChartDataWorkbook.GetCell(0, "A2"));
    chartData.Categories.Add(chartData.ChartDataWorkbook.GetCell(0, "A3"));
    chartData.Categories.Add(chartData.ChartDataWorkbook.GetCell(0, "A4"));
    pres.Save("Presentation.pptx", SaveFormat.Pptx);
}
  1. Combination of methods IChartData.ReadWorkbookStream() and IChartData.SetExternalWorkbook() can be used to create an external workbook from scratch or to make an internal workbook external.
using (Presentation pres = new Presentation("presentaion.pptx"))
{
    string externalWbPath = "externalWorkbook.pptx";

    IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Pie, 50, 50, 400, 600);

    if (File.Exists(externalWbPath))
        File.Delete(externalWbPath);

    using (FileStream fileStream = new FileStream(externalWbPath, FileMode.CreateNew))
    {
        byte[] worbookData = chart.ChartData.ReadWorkbookStream().ToArray();
        fileStream.Write(worbookData, 0, worbookData.Length);
    }

    chart.ChartData.SetExternalWorkbook(externalWbPath);
}