Browse our Products

Aspose.Slides for .NET 17.1.0 Release Notes

KeySummaryCategory
SLIDESNET-38199Support for Value from Cells feature for chart data labelsFeature
SLIDESNET-36738Support for bulk setting text properties for whole table, row or columnFeature
SLIDESNET-35709Set and control text spellcheck language using Aspose.SlidesFeature
SLIDESNET-34103Add support for changing language of presentation and shape’s textFeature
SLIDESNET-33368Using locale for setting the languageFeature
SLIDESNET-3104Language property for textboxesFeature
SLIDESNET-36086Changing slides orientation has no effect on contentsFeature
SLIDESNET-38255Changing font related properties in master slide not getting appliedFeature
SLIDESNET-38239Setting multi-level chart categories not workingFeature
SLIDESNET-38230Unexpected subscript effect on saving presentationFeature
SLIDESNET-38225System.ArgumentOutOfRangeException when adding shape to slide and savingBug
SLIDESNET-38217Exception on converting ppt to pptx or pptmBug
SLIDESNET-38208Pptx not properly converted to htmlBug
SLIDESNET-38206Pptx to pdf conversion giving OutOfMemoryErrorBug
SLIDESNET-38205Text are improperly rendered in generated PDFBug
SLIDESNET-38204EMF images are not properly rendered in generated pdfBug
SLIDESNET-38201Embedded fonts are not getting copied when cloning slideBug
SLIDESNET-38188Exception on generating thumbnailsBug
SLIDESNET-38186Problem with content in result file after saving Ppt to PptxBug
SLIDESNET-38177Cylinder drawing is changed after loading and saving a pptBug
SLIDESNET-38175Meta files are improperly rendered in generated thumbnailsBug
SLIDESNET-38174Fix implementation of ChartSeriesGroup.CompareTo() method.Bug
SLIDESNET-38172Character misplaced after converting to svgBug
SLIDESNET-38167Cell border not generated as double lineBug
SLIDESNET-38156Icon missing after converting slide to svgBug
SLIDESNET-38151Text in pptx document not justified properlyBug
SLIDESNET-38132Bullets changes while converting odp to pdfBug
SLIDESNET-38130Creating charts from sql server tableBug
SLIDESNET-38129Slide orientation went wrongBug
SLIDESNET-38117Thumbnails output croppedBug
SLIDESNET-38109NotImplementedException on saving presentationBug
SLIDESNET-38097Shapes with FillType.Group missing in the generated thumbnailBug
SLIDESNET-38092Text is improperly rendered in generated thumbnailBug
SLIDESNET-38067Bullet space changed after saving pptBug
SLIDESNET-38066Pptx changed after converting to pdfBug
SLIDESNET-38050Exception on saving presentationBug
SLIDESNET-38029Text is not being rendered when exporting slides as thumbnailsBug
SLIDESNET-38004High memory consumption while converting pptx to pdfBug
SLIDESNET-37929Incorrect character positioning in HTML representation of the presentation document in Safari for iOSBug
SLIDESNET-37796Equations are improperly rendered in generated PDF and thumbnailsBug
SLIDESNET-37045Chart title appears on pptx to htmlBug
SLIDESNET-36892Incorrect chart on generated pdfBug
SLIDESNET-36222Date changed to asterisk when saving presentationBug
SLIDESNET-36095DataPoints of scattered chart are not showing in the generated image fileBug
SLIDESNET-36094Y Axis Labels are not correct in the generated image fileBug
SLIDESNET-35571Images are not rendered in HTML to PPTX ImportBug
SLIDESNET-35494Exception on Opening the PPTX file. Error unexpected font parsing exceptionBug
SLIDESNET-35292Ppt to Pptx conversion disturbs equationsBug
SLIDESNET-35265Improper gradient fill export for geometry shapesBug
SLIDESNET-35264Improper DrBrush is used when exporting gradient filled text to PDFBug
SLIDESNET-35263Gradient brush is incorrectly formed when exporting gradient-filled textBug
SLIDESNET-35240PPTX to PDF: Text is missing in generated PDF fileBug
SLIDESNET-35125Footer not Visible when setting using MetacharactersBug
SLIDESNET-35040Chart improperly rendered in generated PDFBug
SLIDESNET-34650Protected view error message on generating PPT form Aspose.SlidesBug
SLIDESNET-34521Improper thumbnail generated for PPTBug
SLIDESNET-34481Default font related properties are set when copying slide notesBug
SLIDESNET-33881Index out of range exception on accessing presentationBug
SLIDESNET-33606PowerPoint 2010 Error Message: PowerPoint has detected problem in file in generated PPTBug
SLIDESNET-33279ProtectedView message appears if multiple hyperlinks are added in generated presentationBug
SLIDESNET-31842Picture is missing in notes page on presentation saveBug
SLIDESNET-22336Equations text overlap in the generated PDFBug
SLIDESNET-17912Mathematical equation are improperly rendered in exported PDFBug

Public API Changes

Default public constructors have been added to PortionFormat, ParagraphFormat and TextFrameFormat classes

Default public constructors have been added to PortionFormat, ParagraphFormat and TextFrameFormat classes. Formats created with these constructions using can be used to specify text formats for a whole table, etc.

Usage Example:

PortionFormat portionFormat = new PortionFormat();
ParagraphFormat paragraphFormat = new ParagraphFormat();
TextFrameFormat textFrameFormat = new TextFrameFormat();

IBulkTextFormattable interface has been added

Aspose.Slides.IBulkTextFormattable interface has been added. It represents an object with possibility of bulk setting child text elements’ formats. It contains the following methods:

void SetTextFormat(IPortionFormat source);
void SetTextFormat(IParagraphFormat source);
void SetTextFormat(ITextFrameFormat source);

Calling any of them will make an object of class that implements this interface set all its child portions / paragraphs / text frames (accordingly to used method overload) with all defined properties from provided format sample.

IFormatFactory interface and FormatFactory class have been added

Aspose.Slides.IFormatFactory interface and Aspose.Slides.FormatFactory class have been added. They allow to create PortionFormat, ParagraphFormat and TextFrameFormat instances via COM interface.

Usage Example:

IPortionFormat portionFormat = FormatFactory.Instance.CreatePortionFormat();
IParagraphFormat paragraphFormat = FormatFactory.Instance.CreateParagraphFormat();
ITextFrameFormatparagraphFormat = FormatFactory.Instance.CreateTextFrameFormat();

Properties DataLabelFormat.ShowLabelValueFromCell and IDataLabelFormat.ShowLabelValueFromCell have been added

Property DataLabelFormat.ShowLabelValueFromCell determines if data label text contains data from workbook data cell.

string lbl0 = "Label 0 cell value";
string lbl1 = "Label 1 cell value";
string lbl2 = "Label 2 cell value";

using (Presentation pres = new Presentation())
{
  IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Bubble, 50, 50, 600, 400, true);
  
  IChartSeriesCollection series = chart.ChartData.Series;
  
  series[0].Labels.DefaultDataLabelFormat.ShowLabelValueFromCell = true;
  
  IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

  series[0].Labels[0].ValueFromCell = wb.GetCell(0, "A10", lbl0);
  series[0].Labels[1].ValueFromCell = wb.GetCell(0, "A11", lbl1);
  series[0].Labels[2].ValueFromCell = wb.GetCell(0, "A12", lbl2);
}

Properties IDataLabel.ValueFromCell and DataLabel.ValueFromCell have been added

Gets or sets workbook data cell. Applied if IDataLabelFormat.ShowLabelValueFromCell property equals true.

string lbl0 = "Label 0 cell value";
string lbl1 = "Label 1 cell value";
string lbl2 = "Label 2 cell value";
using (Presentation pres = new Presentation())
{
  IChart chart = pres.Slides[0].Shapes.AddChart(ChartType.Bubble, 50, 50, 600, 400, true);
  IChartSeriesCollection series = chart.ChartData.Series;
  series[0].Labels.DefaultDataLabelFormat.ShowLabelValueFromCell = true;
  
  IChartDataWorkbook wb = chart.ChartData.ChartDataWorkbook;

  series[0].Labels[0].ValueFromCell = wb.GetCell(0, "A10", lbl0);
  series[0].Labels[1].ValueFromCell = wb.GetCell(0, "A11", lbl1);
  series[0].Labels[2].ValueFromCell = wb.GetCell(0, "A12", lbl2);
  
  pres.Save(outPath, SaveFormat.Pptx);
}

SetTextFormat methods have been added to Column class due to inheritance from IBulkTextFormattable added to IColumn interface

Aspose.Slides.Column class now implements IBulkTextFormattable interface as a part of IColumn interface. Portion, paragraph or text frame format properties can be set to all column cells by calling Column.SetTextFormat methods.

Usage Examples:

ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// setting first column cells' font height
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.Columns[0].SetTextFormat(portionFormat);

// setting first column cells' text alignment and right margin in one call
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.Columns[0].SetTextFormat(paragraphFormat);

// setting second column cells' text vertical type
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.Columns[1].SetTextFormat(textFrameFormat);

SetTextFormat methods have been added to Row class due to inheritance from IBulkTextFormattable added to IRow interface

Aspose.Slides.Row class now implements IBulkTextFormattable interface as a part of IRow interface. Portion, paragraph or text frame format properties can be set to all row cells by calling Row.SetTextFormat methods.

Usage Examples:

ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// setting first row cells' font height
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.Rows[0].SetTextFormat(portionFormat);

// setting first row cells' text alignment and right margin in one call
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.Rows[0].SetTextFormat(paragraphFormat);

// setting second row cells' text vertical type
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.Rows[1].SetTextFormat(textFrameFormat);

SetTextFormat methods have been added to Table class due to inheritance from IBulkTextFormattable added to ITable interface

Aspose.Slides.Table class now implements IBulkTextFormattable interface as a part of ITable interface. Portion, paragraph or text frame format properties can be set to all table cells by calling Table.SetTextFormat methods.

Usage Examples:

ITable someTable = presentation.Slides[0].Shapes[0] as ITable; // let's say that the first shape on the first slide is a table

// setting table cells' font height
PortionFormat portionFormat = new PortionFormat();
portionFormat.FontHeight = 25;
someTable.SetTextFormat(portionFormat);

// setting table cells' text alignment and right margin in one call
ParagraphFormat paragraphFormat = new ParagraphFormat();
paragraphFormat.Alignment = TextAlignment.Right;
paragraphFormat.MarginRight = 20;
someTable.SetTextFormat(paragraphFormat);

// setting table cells' text vertical type
TextFrameFormat textFrameFormat = new TextFrameFormat();
textFrameFormat.TextVerticalType = TextVerticalType.Vertical;
someTable.SetTextFormat(textFrameFormat);

SlideSizeScaleType enum, ISlideSize.SetSize and SlideSize.SetSize methods have been added

New methods SetSize have been added to SlideSize class and ISlideSize interface.

void SetSize(SlideSizeType type, SlideSizeScaleType scaleType);
void SetSize(float width, float height, SlideSizeScaleType scaleType);

These methods allow changing slide size with different ways of content scaling. Ways of content scaling are defined in new SlideSizeScaleType enum. There are following values.

  • DoNotScale - do not scale slide content. Use this for set the size without modification content.
  • EnsureFit - Scale to ensure fit. Use this for scale it down to ensure it will fit on slide.
  • Maximize - Maximize size of content. Use this for maximize the size of your content.

Usage example:

using (Presentation presentation = new Presentation("presentation.ppt"))
{
  presentation.SlideSize.SetSize(540, 720, SlideSizeScaleType.EnsureFit); // Method SetSize is used for set slide size with scale content to ensure fit
  presentation.SlideSize.SetSize(SlideSizeType.A4Paper, SlideSizeScaleType.Maximize); // Method SetSize is used for set slide size with maximize size of content
}

The property Size of interface ISlideSize and class SlideSize has been marked as Obsolete.

The property Type of interface ISlideSize and class SlideSize has been marked as Obsolete.