Aspose.Slides.NET 17.9.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Aspose.Slides.NET --version 17.9.0
NuGet\Install-Package Aspose.Slides.NET -Version 17.9.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="17.9.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Aspose.Slides.NET --version 17.9.0
#r "nuget: Aspose.Slides.NET, 17.9.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=17.9.0

// Install Aspose.Slides.NET as a Cake Tool
#tool nuget:?package=Aspose.Slides.NET&version=17.9.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.

NuGet packages (13)

Showing the top 5 NuGet packages that depend on Aspose.Slides.NET:

Package Downloads
TrueSight

Package Description

Aspose.Total

Aspose.Total for .NET is the most complete package of all .NET file format APIs offered by Aspose. It empowers developers to create, edit, render, print and convert between a wide range of popular document formats within any .NET, C#, ASP.NET and VB.NET applications.

Verify.Aspose The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

Extends Verify (https://github.com/VerifyTests/Verify) to allow verification via Aspose.

Weavy.Core

A class library containing core business logic, data access and utility methods required by Weavy.

frm.baseMService

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
24.4.0 2,556 4/15/2024
24.3.0 12,968 3/15/2024
24.2.0 15,994 2/16/2024
24.1.0 20,373 1/19/2024
23.12.0 34,599 12/11/2023
23.11.0 43,217 11/16/2023
23.10.0 58,328 10/19/2023
23.9.0 53,179 9/20/2023
23.8.0 48,553 8/21/2023
23.7.0 36,169 7/18/2023
23.6.0 33,070 6/26/2023
23.5.0 100,187 5/19/2023
23.4.0 87,069 4/20/2023
23.3.1 65,304 3/23/2023
23.2.0 45,844 2/27/2023
23.1.0 121,221 1/27/2023
22.12.0 131,998 12/16/2022
22.11.0 98,259 11/23/2022
22.10.0 190,110 10/18/2022
22.9.0 92,797 9/13/2022
22.8.0 51,611 8/17/2022
22.7.0 73,427 7/19/2022
22.6.0 80,197 6/24/2022
22.5.0 91,146 5/17/2022
22.4.0 84,906 4/15/2022
22.3.0 60,079 3/17/2022
22.2.0 106,761 2/16/2022
22.1.0 109,434 1/19/2022
21.12.0 80,968 12/17/2021
21.11.0 97,443 11/16/2021
21.10.0 83,393 10/7/2021
21.9.0 289,450 9/20/2021
21.8.0 91,421 8/16/2021
21.7.0 75,980 7/15/2021
21.6.0 33,744 6/17/2021
21.5.0 57,598 5/18/2021
21.4.0 88,876 4/18/2021
21.3.0 82,123 3/19/2021
21.2.0 90,793 2/16/2021
21.1.0 90,546 1/21/2021
20.12.0 86,002 12/10/2020
20.11.1 6,410 12/10/2020
20.11.0 120,717 12/23/2020
20.10.0 69,459 10/19/2020
20.9.0 23,879 9/25/2020
20.8.0 58,328 8/17/2020
20.7.0 47,232 7/17/2020
20.6.0 62,813 6/12/2020
20.5.0 55,162 5/7/2020
20.4.0 41,863 4/22/2020
20.3.0 49,843 3/23/2020
20.2.0 76,182 2/17/2020
20.1.0 64,778 1/17/2020
19.12.0 52,446 12/31/2019
19.11.0 46,147 11/27/2019
19.10.0 66,592 10/29/2019
19.9.0 60,508 9/12/2019
19.8.0 12,429 8/30/2019
19.7.0 38,923 7/26/2019
19.6.0 25,398 6/25/2019
19.5.0 19,693 5/31/2019
19.4.0 29,925 4/26/2019
19.3.0 12,940 4/3/2019
19.2.0 35,805 2/28/2019
19.1.0 83,163 1/30/2019
18.12.0 49,008 12/27/2018
18.11.0 23,589 11/30/2018
18.10.0 53,013 10/30/2018
18.9.0 17,340 9/30/2018
18.8.0 16,320 8/29/2018
18.7.0 28,146 7/27/2018
18.6.0 37,031 7/1/2018
18.5.0 16,513 5/30/2018
18.4.0 32,284 5/3/2018
18.3.0 18,066 4/1/2018
18.2.1 51,564 3/7/2018
18.2.0 26,399 2/28/2018
18.1.0 28,081 1/30/2018
17.12.1 14,690 12/26/2017
17.12.0 4,423 12/16/2017
17.11.0 7,589 11/30/2017
17.10.0 24,569 10/31/2017
17.9.1 7,268 10/12/2017
17.9.0 6,845 10/2/2017
17.8.0 47,846 8/30/2017
17.7.0 16,197 7/31/2017
17.6.0 10,812 7/1/2017
17.5.0 8,096 5/31/2017
17.4.0 9,157 4/28/2017
17.3.0 15,676 4/2/2017
17.2.0 35,254 3/1/2017
17.1.0 7,495 1/31/2017
16.12.1 15,086 1/16/2017
16.12.0 5,618 12/27/2016
16.11.0 8,679 11/30/2016
16.10.0 11,660 11/4/2016
16.9.0 8,088 10/12/2016
16.8.0 34,900 9/27/2016
16.7.0 5,208 8/22/2016
16.6.0 49,308 7/15/2016
16.5.0 12,615 6/16/2016
16.4.0 9,041 5/16/2016
16.3.0 18,391 4/11/2016
16.2.0 9,014 3/17/2016
16.1.0 20,125 2/4/2016
15.11.0 28,177 1/11/2016
15.10.0 13,255 12/10/2015
15.9.0 10,394 11/6/2015
15.8.1 4,223 10/16/2015
15.8.0 5,065 10/5/2015
15.7.0 64,995 9/3/2015
15.6.0 32,452 7/22/2015
15.5.0 9,960 6/16/2015
15.4.0 8,030 5/14/2015
15.3.1 6,054 4/23/2015
15.3.0 3,931 4/14/2015
15.2.0 41,902 3/6/2015
15.1.0 10,702 2/3/2015
14.10.0 12,428 11/28/2014
14.9.0 6,453 11/11/2014
14.8.1 4,603 10/24/2014
14.8.0 3,728 10/16/2014
14.7.0 4,987 9/7/2014
14.6.0 4,582 8/6/2014
14.5.0 8,473 7/16/2014
14.4.0 5,857 6/2/2014
14.3.0 7,383 5/6/2014
14.2.0 4,289 3/24/2014
14.1.2 5,669 2/17/2014
14.1.1 3,636 2/10/2014
14.1.0.2 3,507 2/6/2014
13.12.0 4,513 12/30/2013
8.4.2 39,986 6/5/2014
8.4.1 4,151 5/6/2014
8.4.0 5,050 3/3/2014
8.3.0.1 3,823 2/3/2014
8.2.0 3,715 12/27/2013
8.1.0 11,082 12/16/2013
8.0.0 4,848 10/25/2013
7.9.0 4,116 10/8/2013
7.8.0 3,742 9/3/2013
7.7.0 11,739 8/4/2013
7.6.0 6,807 7/5/2013
7.5.0 6,170 5/27/2013
7.4.0 10,196 4/24/2013
7.3.0 3,568 4/10/2013
7.2.0 4,169 3/8/2013
7.1.0 5,920 1/28/2013
7.0.0 5,669 12/31/2012
6.9.0 3,539 12/10/2012
6.8.0 3,907 10/30/2012
6.7.0 4,188 10/4/2012
6.6.0 3,430 9/13/2012
6.5.0 3,794 7/27/2012
6.4.0 3,538 6/27/2012
6.3.0 3,468 5/29/2012
6.2.0 3,663 5/7/2012
6.1.0 3,574 3/28/2012
6.0.0 3,916 3/2/2012
5.9.0.1 7,567 2/16/2012
5.9.0 6,322 2/16/2012

There are known performance regressions in this release. They are related to new styles nesting functionality. We are working on improvements and going to prepare a fix.

SLIDESNET-38899 - Option for saving css and images separately when exporting as html
SLIDESNET-39196 - Render notes when saving as HTML
SLIDESNET-39113 - Saving into HTML with preserving original fonts
SLIDESNET-39090 - The possibility to specify fonts to process a single presentation
SLIDESNET-39125 - The font has changed in the cloned presentation
SLIDESNET-39237 - Exporting Powerpoint files to PDF is x2 slower at least
SLIDESNET-39281 - WordArt text differs from expected
SLIDESNET-38015 - When PPTX is converted to PDF, the values in chart are missing
SLIDESNET-39279 - After open and save PPTX, output file returns an error for embedded PPTX
SLIDESNET-39302 - Arrow bullets get overlapped on text in generated PDF
SLIDESNET-39303 - Text is improperly rendered in generated PDF
SLIDESNET-39304 - Text position getting changed in generated PDF and thumbnail
SLIDESNET-39306 - Text (WordArt) is improperly rendered in thumbnail
SLIDESNET-39286 - Font file is locked after call to ClearCache method
SLIDESNET-39312 - System.ArgumentException when converting specific Pptx to Ppt or Pps
SLIDESNET-39133 - Exception on copying excel chart in ppt
SLIDESNET-39221 - Border gets visible around placeholder in generated thumbnails
SLIDESNET-39235 - Timed based animation on bullet effects are lost on cloning slides
SLIDESNET-39276 - Pptx not properly converted to pdf
SLIDESNET-32445 - Missing image in exported slide SVG Image
SLIDESNET-33962 - Text missing or improperly rendered in generated SVG
SLIDESNET-35966 - Axis Labels wrapping are not as in the generated PDF file
SLIDESNET-37253 - Shadow effects lost in generated thumbnail
SLIDESNET-37609 - Footer and slide number are added to the first slide after loading and saving a ppt
SLIDESNET-37680 - Shadow is added to Text after saving ppt
SLIDESNET-37750 - Font position changes after saving ppt
SLIDESNET-38552 - Font size changes
SLIDESNET-39054 - PptxRead exception on loading presentaiton
SLIDESNET-39108 - Unexpected text shadow effect shows up
SLIDESNET-39120 - Animation dimming effect missing after saving presentation
SLIDESNET-39129 - NotImplemented Exception is thrown on adding CategoryAxisType.Auto
SLIDESNET-39131 - ArgumentException on cloning slide
SLIDESNET-39142 - Shape becomes 3D after saving ppt
SLIDESNET-39143 - Arrow shape is changed after saving ppt
SLIDESNET-39149 - Image is not getting added for table cell in exported PDF
SLIDESNET-39163 - Animation effects are lost on saving presentation
SLIDESNET-39185 - Font exception on reading a presentation in Mono MAC OS environment
SLIDESNET-39195 - Pptx not properly converted to pdf
SLIDESNET-39208 - Exception on loading presentation
SLIDESNET-39214 - Exception on loading presentation
SLIDESNET-39215 - Ppt changed after saving: hyperlinks are gone
SLIDESNET-39222 - PptxRead exception on loading presentaiton
SLIDESNET-39225 - PptxReadException on reading presentation
SLIDESNET-39233 - Slides are rendered blank or with improper orientation in exported HTML
SLIDESNET-39240 - Repair message on opening the Aspose.Slides saved presentation in MS 2010
SLIDESNET-39243 - Arrow bullets get overlapped on text in PDF
SLIDESNET-39264 - Arrow bullets changed to square in saved presentation
SLIDESNET-39268 - Exception on saving presentation
SLIDESNET-39275 - InvalidOperationException on saving the presentation
SLIDESNET-39317 - Hyperlink with Japanese characters is converted to URL encoding

Public API Changes

Added possibility to specify fonts used with a presentation

A new DocumentLevelFontSources property has been added to ILoadOptions interface. It allows to specify external fonts that are used with the presentation.

DocumentLevelFontSources property is of type IFontSources that has the following properties:

string[] FontFolders - folders that are recursively searched for font files.
byte[][] MemoryFonts - a collection of fonts represented as byte arrays.

byte[] memoryFont1 = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] memoryFont2 = File.ReadAllBytes("customfonts\\CustomFont2.ttf");

ILoadOptions loadOptions = new LoadOptions();
loadOptions.DocumentLevelFontSources.FontFolders = new string[] { "assets\\fonts", "global\\fonts" };
loadOptions.DocumentLevelFontSources.MemoryFonts = new byte[][] { memoryFont1, memoryFont2 };
using (IPresentation presentation = CreatePresentation("MyPresentation.pptx", loadOptions))
{
   //work with the presentation
   //CustomFont1, CustomFont2 as well as fonts from assets\fonts & global\fonts folders and their subfolders are available to the presentation
}

The fonts that are passed with DocumentLevelFontSources property are available to the presentation throughout its lifetime and are not available outside the presentation. Consider the following example:

string[] fontFolders1 = new string[] { "assets\\fonts" };
string[] fontFolders2 = new string[] { "global\\fonts" };

byte[] memoryFont1 = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] memoryFont2 = File.ReadAllBytes("customfonts\\CustomFont2.ttf");

IFontSources fontSources1 = new FontSources { FontFolders = fontFolders1, MemoryFonts = new byte[][] { memoryFont1 } };
IFontSources fontSources2 = new FontSources { FontFolders = fontFolders2, MemoryFonts = new byte[][] { memoryFont2 } };

using (IPresentation presentation1 = CreatePresentation("MyPresentation1.pptx", new LoadOptions { DocumentLevelFontSources = fontSources1 }))
using (IPresentation presentation2 = CreatePresentation("MyPresentation2.pptx", new LoadOptions { DocumentLevelFontSources = fontSources2 }))
{

   //work with the presentations
   //CustomFont1 as well as fonts from assets\fonts folder and its subfolders are available to presentation1 but not to presentation2
   //CustomFont2 as well as fonts from global\fonts folder and its subfolders are available to presentation2 but not to presentation1
}

If you need to add external fonts at application level and make it available to all presentations please use FonsLoader class. You can use them together like as follows:

byte[] globalMemoryFont = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] localMemoryFont = File.ReadAllBytes("customfonts\\CustomFont2.ttf");

ILoadOptions loadOptions = new LoadOptions();
loadOptions.DocumentLevelFontSources.FontFolders = new string[] { "assets\\fonts" };
loadOptions.DocumentLevelFontSources.MemoryFonts = new byte[][] { localMemoryFont };

using (IPresentation presentation = CreatePresentation("MyPresentation.pptx", loadOptions))
{
   //work with the presentation
   //CustomFont2 as well as fonts from assets\fonts folder and its subfolders are available to the presentation
   //CustomFont1 as well as fonts from global\fonts folder and its subfolders are unavailable to the presentation
}

FontsLoader.LoadExternalFonts(new string[] { "global\\fonts" });
FontsLoader.LoadExternalFont(globalMemoryFont);

using (IPresentation presentation = CreatePresentation("MyPresentation.pptx", loadOptions))
{
   //work with the presentation
   //CustomFont1 and CustomFont2 as well as fonts from global\fonts and assets\fonts folders and their subfolders are available to the presentation
}

CategoryAxisType.Auto value has been replaced with IAxis.SetCategoryAxisTypeAutomatically() method

Method IAxis.SetCategoryAxisTypeAutomatically() sets IAxis.CategoryAxisType property with a value that is automatically determined based on axis data.
Element HtmlNotes has been added to SaveFormat enumeration

Element HtmlNotes has been added to Aspose.Slides.Export.SaveFormat enumeration. This element allows saving presentation Notes Page View into HTML format.

Code example:

using (Presentation pres = new Presentation("Presentation.pptx"))
{
   // Saving notes pages
   pres.Save("Output.html", SaveFormat.HtmlNotes);
}

Obsolete Presentation.GetPresentationText methods have been deleted

Obsolete Presentation.GetPresentationText methods have been deleted:

Aspose.Slides.Presentation.GetPresentationText(Stream stream, TextExtractionArrangingMode mode)
Aspose.Slides.Presentation.GetPresentationText(String file, TextExtractionArrangingMode mode)
Aspose.Slides.Presentation.GetPresentationText(Stream stream, TextExtractionArrangingMode mode, LoadOptions options)

Write document elements methods have been made virtual in EmbedAllFontsHtmlController class. WriteAllFonts method has been Added.

WriteDocumentStart, WriteDocumentEnd, WriteSlideStart, WriteSlideEnd, WriteShapeStart, WriteShapeEnd methods have been made virtual to provide a better support to customize generated HTML documents.

In addition, WriteAllFonts method has been added. It allows overriding the way how all fonts contained in the presentation are serialized into HTML.

Please review the example how to use overridable methods to create a custom HTML document with a link to CSS file.

public class CustomHeaderAndFontsController : EmbedAllFontsHtmlController
{
   // Custom header template
   const string Header = +"<!DOCTYPE html>\n" +
                           "<html>\n" +
                           "<head>\n" +
                           "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n" +
                           "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=9\">\n" +
                           "<link rel=\"stylesheet\" type=\"text/css\" href=\"{0}\">\n" +
                           "</head>";


   private readonly string m_cssFileName;

   public CustomHeaderAndFontsController(string cssFileName)
   {
       m_cssFileName = cssFileName;
   }

   public override void WriteDocumentStart(IHtmlGenerator generator, IPresentation presentation)
   {
       generator.AddHtml(string.Format(Header, m_cssFileName));
       WriteAllFonts(generator, presentation);
   }

   public override void WriteAllFonts(IHtmlGenerator generator, IPresentation presentation)
   {
       generator.AddHtml("<!-- Embedded fonts -->");
       base.WriteAllFonts(generator, presentation);
   }
}

There is the example how CustomHeaderAndFontsController can be used.

using (Presentation pres = new Presentation("pres.pptx"))
{
   CustomHeaderAndFontsController htmlController = new CustomHeaderAndFontsController("styles.css");
   HtmlOptions options = new HtmlOptions
   {
       HtmlFormatter = HtmlFormatter.CreateCustomFormatter(htmlController),
   };

   pres.Save("pres.html", SaveFormat.Html, options);
}