Aspose.Slides.NET 14.4.0

Aspose.Slides for .NET

Aspose.Slides is a PowerPoint management library for working with Microsoft PowerPoint files without using Microsoft PowerPoint. It allows developers to work with PPT, PPS, POT, PPTX, PPSX, POTX and ODP files on ASP.NET web applications, web services and Windows applications.

There is a newer version of this package available.
See the version list below for details.
Install-Package Aspose.Slides.NET -Version 14.4.0
dotnet add package Aspose.Slides.NET --version 14.4.0
<PackageReference Include="Aspose.Slides.NET" Version="14.4.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Aspose.Slides.NET --version 14.4.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Aspose.Slides for .NET 14.4.0 Release Notes
We are pleased to announce the release of Aspose.Slides for .NET 14.4.0. This release includes new functionality and bug fixes.

Using Aspose.Slides for .NET you can work with PPT, PPTX, OpenDocument, and other formats in your applications. You can also view, generate, modify, convert, render and print presentations all without using Microsoft PowerPoint.

Visit the documentation to learn how to get started with Aspose.Slides for .NET.

Note this download contains a fully working version of the product, however without a license set it will run in evaluation mode. To test Aspose.Slides without these evaluation limitations you can request a free 30-day temporary license.

The following is a list of changes in this version of Aspose.Slides.

Major Features
(SLIDESNET-35180) - Add possibility of adding/inserting/removing/cloning layout slides
Minor Features
(SLIDESNET-35103) - Relative Image height is not working in mreged API
(SLIDESNET-31454) - Support for accessing and changing SmartArt node bullet images
(SLIDESNET-35266) - Not able to clone custom layout slides by using destination theme
Other Improvements and Changes
Bugs
(SLIDESNET-35385) - small caps turn into lower case for PPTX presentation thumbnails
(SLIDESNET-35376) - Shape Rotation is not working in version 14.3.0
(SLIDESNET-35365) - Hyperlink to absolute file path doesn't work for PowerPoint 2007
(SLIDESNET-35357) - ArgumentException while exporting presentation to HTML
(SLIDESNET-35346) - Aspose.Slides takes enormous time to export to PDF
(SLIDESNET-35343) - Some shapes in generated presentation is broken or missed
(SLIDESNET-35338) - Animation is not getting preserved correctly after cloning slides
(SLIDESNET-35326) - Error message on opening created Pdf
(SLIDESNET-35315) - Error on opening the generated PDF file from PPT
(SLIDESNET-35207) - Index out of range exception is thrown on opening the PPTX file
(SLIDESNET-35173) - Saving presentation to PDF throws StackOverflowException
(SLIDESNET-35151) - Wrong chart outline PDF and PNG rendering
(SLIDESNET-35071) - Labels and Y-Axis Values are not displayed as per the number format in generated image file
(SLIDESNET-34455) - SmartArt is missing in generated PDF
(SLIDESNET-34091) - NullReferenceException during the "DiagramNodeEx -> TextFrameEx.Text" property accessing
(SLIDESNET-34090) - Margins of the TextFrame of the smartArt diagrams node are not defined after a presentation loading
(SLIDESNET-34089) - DiagramNodeEx.AllNodes returns a collection which works not obviously
(SLIDESNET-34088) - DiagramNodeEx.ChildNodes
() returns incorrect collection after a node removing
(SLIDESNET-33916) - Setting node and child node position does not work for SmartArt Shapes
(SLIDESNET-33840) - Exporting to HTML does not obey image resizing
(SLIDESNET-33672) - Merging cells in tables reduce the number of rows or columns
(SLIDESNET-33511) - SmartArt improperly renderd in generated PDF
(SLIDESNET-30874) - SmartArt text is improperly rendered in exported PDF, TIFF
Public API and Backwards Incompatible Changes
Aspose.Slides.ILayoutSlide.HasDependingSlides property had been added
The property Aspose.Slides.ILayoutSlide.HasDependingSlides returns true if there exists at least one slide that depends on this layout slide. For example:
ILayoutSlide layout = ...;
if (!layout.HasDependingSlides)
layout.Remove();
Aspose.Slides.ILayoutSlide.Remove() method had been added
The method Aspose.Slides.ILayoutSlide.Remove() allows to remove layout from presentation with minimum of code. For example:
ILayoutSlide layout = ...;
if (!layout.HasDependingSlides)
layout.Remove();
Aspose.Slides.ILayoutSlideCollection.Remove(ILayoutSlide) method had been added
The method Aspose.Slides.ILayoutSlideCollection.Remove(ILayoutSlide) allows to remove a layout from the collection. Code examples:
ILayoutSlide layout = ...;
if (!layout.HasDependingSlides)
presentation.LayoutSlides.Remove(layout);
or
IMasterSlide masterSlide = ...;
ILayoutSlide layout = ...;
if (!layout.HasDependingSlides)
masterSlide.LayoutSlides.Remove(layout);
Aspose.Slides.ILayoutSlideCollection.RemoveUnused() method had been added
The method Aspose.Slides.ILayoutSlideCollection.RemoveUnused() allows to remove unused layout slides (layout slides whose HasDependingSlides is false). Code examples:
presentation.LayoutSlides.RemoveUnused();
or
IMasterSlide masterSlide = ...;
masterSlide.LayoutSlides.RemoveUnused();
Aspose.Slides.IMasterSlide.HasDependingSlides property had been added
The property Aspose.Slides.IMasterSlide.HasDependingSlides returns true if there exists at least one slide that depends on this master slide. For example:
IMasterSlide masterSlide = ...;
if (!masterSlide.HasDependingSlides)
presentation.Masters.Remove(masterSlide);
Aspose.Slides.ISlide.Remove() method had been added
The method Aspose.Slides.ISlide.Remove() allows to remove slide from presentation with minimum of code. For example:
ISlide slide = ...;
slide.Remove();
Aspose.Slides.SmartArt.ISmartArtNode.BulletFillFormat property has been added
The property Aspose.Slides.SmartArt.ISmartArtNode.BulletFillFormat returns IFillFormat for SmartArt node bullet if layout provide bullets. Can be used for set bullet image.
using(Presentation presentation = new Presentation())
{
ISmartArt smart = presentation.Slides[0].Shapes.AddSmartArt(10, 10, 500, 400, SmartArtLayoutType.VerticalPictureList);
ISmartArtNode node = smart.AllNodes[0];

if(node.BulletFillFormat != null)
{
Image img = (Image)new Bitmap("sample.jpg");
IPPImage image = presentation.Images.AddImage(img);
node.BulletFillFormat.FillType = FillType.Picture;
node.BulletFillFormat.PictureFillFormat.Picture.Image = image;
node.BulletFillFormat.PictureFillFormat.PictureFillMode = PictureFillMode.Stretch;
}
presentation.Save("out.pptx", SaveFormat.Pptx);
}
Aspose.Slides.SmartArt.ISmartArtNode.Level property has been added
The property Aspose.Slides.SmartArt.ISmartArtNode.Level returns nested level for SmartArt node
ISmartArtNode node = diagram.AllNodes[0];
if(node.Level == 1)
node.TextFrame.Text = "First level";
Aspose.Slides.SmartArt.ISmartArtNode.Position property has been added
The property Aspose.Slides.SmartArt.ISmartArtNode.Position returns position of node among siblings.
ISmartArtNode node = diagram.AllNodes[0];
if (node.ChildNodes.Count > 3)
node.ChildNodes[0].Position++;
Aspose.Slides.SmartArt.ISmartArtNode.Remove() method had been added
Aspose.Slides.SmartArt.ISmartArtNode.Remove() method allows to remove node from diagram.
ISmartArt node = diagram.AllNodes[0];
node.Remove();
Interface IGlobalLayoutSlideCollection and class GlobalLayoutSlideCollection had been added
Interface IGlobalLayoutSlideCollection and class GlobalLayoutSlideCollection had been added into namespace Aspose.Slides. Class GlobalLayoutSlideCollection implements interface IGlobalLayoutSlideCollection.
Interface IGlobalLayoutSlideCollection represents a collection of all layout slides in presentation. IPresentation.LayoutSlides property is of type IGlobalLayoutSlideCollection. IGlobalLayoutSlideCollection extends ILayoutSlideCollection interface with methods for adding/cloning layout slides in context of uniting of the individual collections of master's layout slides:
ILayoutSlide AddClone(ILayoutSlide sourceLayout);
- allows to add a copy of a specified layout slide to the presentation. This method keep source formatting (when cloning a layout between different presentations layout's master can be cloned too. Internal registry is used to track automatically cloned masters to prevent creation of multiple clones of the same master slide.)
ILayoutSlide AddClone(ILayoutSlide sourceLayout, IMasterSlide destMaster);
- allows to add a copy of a specified layout slide to the presentation. New layout will be linked with defined master in destination presentation. So this is analogue of copy/paste with "Use Destination Theme" option in PowerPoint. ILayoutSlide Add(IMasterSlide master, SlideLayoutType layoutType, string layoutName);
- allows to add a new layout slide to the presentation. Supported layout types: Title, TitleOnly, Blank, TitleAndObject, VerticalText, VerticalTitleAndText, TwoObjects, SectionHeader, TwoTextAndTwoObjects, TitleObjectAndCaption, PictureAndCaption, Custom. Layout name can be generated atomatically. Added layout of type SlideLayoutType.Custom contains no placeholders and no shapes. Analogue of this method is method IMasterLayoutSlideCollection.Add(SlideLayoutType, string) accessed with IMasterSlide.LayoutSlides property.
Interface IMasterLayoutSlideCollection and class MasterLayoutSlideCollection had been added
Interface IMasterLayoutSlideCollection and class MasterLayoutSlideCollection had been added into namespace Aspose.Slides. Class MasterLayoutSlideCollection implements interface IMasterLayoutSlideCollection.
Interface IMasterLayoutSlideCollection represents a collections of all layout slides of defined master slide. It extends ILayoutSlideCollection interface with methods for adding/inserting/removing/cloning layout slides in context of the individual collections of master's layout slides:
// method signature:
ILayoutSlide AddClone(ILayoutSlide sourceLayout);
// code example that attaches copy of the sourceLayout to the destMasterSlide:
IMasterSlide destMasterSlide = ...;
destMasterSlide.LayoutSlides.AddClone(sourceLayout);
- allows to add a copy of a specified layout slide to the end of the collection. New layout will be linked with parent master slide for this layout slides collection. So this is analogue of copy/paste with "Use Destination Theme" option in PowerPoint. Analogue of this method is method IGlobalLayoutSlideCollection.AddClone(ILayoutSlide, IMasterSlide) accessed with IPresentation.LayoutSlides property.
ILayoutSlide InsertClone(int index, ILayoutSlide sourceLayout);
- allows to insert a copy of a specified layout slide to specified position of the collection. New layout will be linked with parent master slide for this layout slides collection. So this is analogue of copy/paste with "Use Destination Theme" option in PowerPoint.
ILayoutSlide Add(SlideLayoutType layoutType, string layoutName);
ILayoutSlide Insert(int index, SlideLayoutType layoutType, string layoutName);
- allows to add/inserts a new layout slide. Supported layout types: Title, TitleOnly, Blank, TitleAndObject, VerticalText, VerticalTitleAndText, TwoObjects, SectionHeader, TwoTextAndTwoObjects, TitleObjectAndCaption, PictureAndCaption, Custom. Layout name can be generated atomatically. Added layout of type SlideLayoutType.Custom contains no placeholders and no shapes. Analogue of this method is method IGlobalLayoutSlideCollection.Add(IMasterSlide, SlideLayoutType, string) accessed with IPresentation.LayoutSlides property.
void RemoveAt(int index);
- allows to remove the layout at the specified index of the collection.
void Reorder(int index, ILayoutSlide layoutSlide);
- allows to move layout slide from the collection to the specified position.
Signature of the Aspose.Slides.ISlideCollection.AddClone(ISlide, IMasterSlide) method has been changed
Signature of the ISlideCollection method
ISlide AddClone(ISlide sourceSlide, IMasterSlide destMaster);
is obsolete now and is replaced with signature
ISlide AddClone(ISlide sourceSlide, IMasterSlide destMaster, bool allowCloneMissingLayout)
Parameter "allowCloneMissingLayout" specify what to do if there is no appropriate layout in "destMaster" for new (cloned) slide. Appropriate layout is the layout with the same Type or Name as of layout of the source slide. If there is no appropriate layout in specified master then layout of the source slide will be cloned (if allowCloneMissingLayout is true) or PptxEditException will be thrown (if allowCloneMissingLayout is false).
Call of the obsolete method like
AddClone(sourceSlide, destMaster);
assumes "allowCloneMissingLayout" is equal to false (i.e. PptxEditException will be thrown if there is no appropriate layout). Functionally identical call that uses new signature looks as
AddClone(sourceSlide, destMaster, false);
If you want missing layouts to be automatically cloned instead PptxEditException throwing then pass "allowCloneMissingLayout" parameter true.
The same refers to the ISlideCollection method
ISlide InsertClone(int index, ISlide sourceSlide, IMasterSlide destMaster);
that is also obsolete now and is replaced with signature
ISlide InsertClone(int index, ISlide sourceSlide, IMasterSlide destMaster, bool allowCloneMissingLayout);
Type of the Aspose.Slides.IMasterSlide.LayoutSlides property has been changed
Type of the Aspose.Slides.IMasterSlide.LayoutSlides property has been changed from ILayoutSlideCollection to new IMasterLayoutSlideCollection interface. IMasterLayoutSlideCollection interface is the descendant of the ILayoutSlideCollection so user code needs no adaptations.
Type of the Aspose.Slides.IPresentation.LayoutSlides property has been changed
Type of the Aspose.Slides.IPresentation.LayoutSlides property has been changed from ILayoutSlideCollection to new IGlobalLayoutSlideCollection interface. IGlobalLayoutSlideCollection interface is the descendant of the ILayoutSlideCollection so user code needs no adaptations.

Dependencies

This package has no dependencies.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
19.6.0 1,290 6/25/2019
19.5.0 2,356 5/31/2019
19.4.0 3,599 4/26/2019
19.3.0 2,281 4/3/2019
19.2.0 6,285 2/28/2019
19.1.0 7,074 1/30/2019
18.12.0 4,278 12/27/2018
18.11.0 3,627 11/30/2018
18.10.0 10,834 10/30/2018
18.9.0 3,165 9/30/2018
18.8.0 3,462 8/29/2018
18.7.0 9,256 7/27/2018
18.6.0 10,189 7/1/2018
18.5.0 5,589 5/30/2018
18.4.0 2,453 5/3/2018
18.3.0 3,097 4/1/2018
18.2.1 3,511 3/7/2018
18.2.0 1,906 2/28/2018
18.1.0 2,890 1/30/2018
17.12.1 4,843 12/26/2017
17.12.0 808 12/16/2017
17.11.0 1,283 11/30/2017
17.10.0 3,975 10/31/2017
17.9.1 3,459 10/12/2017
17.9.0 1,423 10/2/2017
17.8.0 9,332 8/30/2017
17.7.0 6,096 7/31/2017
17.6.0 2,237 7/1/2017
17.5.0 1,997 5/31/2017
17.4.0 2,567 4/28/2017
17.3.0 2,965 4/2/2017
17.2.0 7,256 3/1/2017
17.1.0 3,133 1/31/2017
16.12.1 3,165 1/16/2017
16.12.0 1,531 12/27/2016
16.11.0 2,346 11/30/2016
16.10.0 2,317 11/4/2016
16.9.0 2,943 10/12/2016
16.8.0 2,876 9/27/2016
16.7.0 1,504 8/22/2016
16.6.0 16,198 7/15/2016
16.5.0 3,118 6/16/2016
16.4.0 3,360 5/16/2016
16.3.0 7,826 4/11/2016
16.2.0 4,260 3/17/2016
16.1.0 5,875 2/4/2016
15.11.0 9,167 1/11/2016
15.10.0 9,181 12/10/2015
15.9.0 5,467 11/6/2015
15.8.1 913 10/16/2015
15.8.0 1,208 10/5/2015
15.7.0 3,140 9/3/2015
15.6.0 7,123 7/22/2015
15.5.0 2,685 6/16/2015
15.4.0 1,798 5/14/2015
15.3.1 1,001 4/23/2015
15.3.0 665 4/14/2015
15.2.0 8,733 3/6/2015
15.1.0 1,221 2/3/2015
14.10.0 4,569 11/28/2014
14.9.0 1,479 11/11/2014
14.8.1 1,379 10/24/2014
14.8.0 620 10/16/2014
14.7.0 1,825 9/7/2014
14.6.0 1,129 8/6/2014
14.5.0 3,070 7/16/2014
14.4.0 1,741 6/2/2014
14.3.0 1,956 5/6/2014
14.2.0 1,136 3/24/2014
14.1.2 1,545 2/17/2014
14.1.1 619 2/10/2014
14.1.0.2 537 2/6/2014
13.12.0 1,476 12/30/2013
8.4.2 4,537 6/5/2014
8.4.1 1,130 5/6/2014
8.4.0 757 3/3/2014
8.3.0.1 645 2/3/2014
8.2.0 592 12/27/2013
8.1.0 4,873 12/16/2013
8.0.0 1,622 10/25/2013
7.9.0 986 10/8/2013
7.8.0 709 9/3/2013
7.7.0 2,981 8/4/2013
7.6.0 777 7/5/2013
7.5.0 1,015 5/27/2013
7.4.0 7,297 4/24/2013
7.3.0 803 4/10/2013
7.2.0 1,028 3/8/2013
7.1.0 3,107 1/28/2013
7.0.0 829 12/31/2012
6.9.0 778 12/10/2012
6.8.0 845 10/30/2012
6.7.0 1,102 10/4/2012
6.6.0 708 9/13/2012
6.5.0 821 7/27/2012
6.4.0 738 6/27/2012
6.3.0 664 5/29/2012
6.2.0 707 5/7/2012
6.1.0 731 3/28/2012
6.0.0 703 3/2/2012
5.9.0.1 722 2/16/2012
5.9.0 1,123 2/16/2012
Show less