Aspose.Slides.NET 14.4.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Aspose.Slides.NET --version 14.4.0                
NuGet\Install-Package Aspose.Slides.NET -Version 14.4.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<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                
#r "nuget: Aspose.Slides.NET, 14.4.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Aspose.Slides.NET as a Cake Addin
#addin nuget:?package=Aspose.Slides.NET&version=14.4.0

// Install Aspose.Slides.NET as a Cake Tool
#tool nuget:?package=Aspose.Slides.NET&version=14.4.0                

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.

Product Compatible and additional computed target framework versions.
.NET Framework net20 is compatible.  net35 was computed.  net35-client is compatible.  net40 was computed.  net40-client is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
23.6.0 2 6/23/2023
23.4.0 2 4/20/2023
21.6.0 4 6/17/2021
21.2.0 10 3/11/2021
15.3.1 415 4/23/2015
15.3.0 214 4/14/2015
15.2.0 924 3/6/2015
15.1.0 305 2/3/2015
14.10.0 1,030 11/28/2014
14.9.0 574 11/11/2014
14.8.1 642 10/24/2014
14.8.0 210 10/16/2014
14.7.0 921 9/7/2014
14.6.0 622 8/6/2014
14.5.0 358 7/16/2014
14.4.0 702 6/2/2014
14.3.0 302 5/6/2014
14.2.0 181 3/24/2014
14.1.2 167 2/17/2014
14.1.1 113 2/10/2014
14.1.0.2 114 2/6/2014
13.12.0 198 12/30/2013
8.4.2 251 6/5/2014
8.4.1 157 5/6/2014
8.4.0 121 3/3/2014
8.3.0.1 126 2/3/2014
8.2.0 115 12/27/2013
8.1.0 2,042 12/16/2013
8.0.0 177 10/25/2013
7.9.0 155 10/8/2013
7.8.0 128 9/3/2013
7.7.0 133 8/4/2013
7.6.0 129 7/5/2013
7.5.0 131 5/27/2013
7.4.0 2,335 4/24/2013
7.3.0 117 4/10/2013
7.2.0 134 3/8/2013
7.1.0 135 1/28/2013
7.0.0 131 12/31/2012
6.9.0 123 12/10/2012
6.8.0 116 10/30/2012
6.7.0 167 10/4/2012
6.6.0 125 9/13/2012
6.5.0 125 7/27/2012
6.4.0 123 6/27/2012
6.3.0 117 5/29/2012
6.2.0 121 5/7/2012
6.1.0 123 3/28/2012
6.0.0 122 3/2/2012
5.9.0.1 115 2/16/2012
5.9.0 126 2/16/2012

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.