Aspose.Slides.NET
17.5.0
See the version list below for details.
dotnet add package Aspose.Slides.NET --version 17.5.0
NuGet\Install-Package Aspose.Slides.NET -Version 17.5.0
<PackageReference Include="Aspose.Slides.NET" Version="17.5.0" />
paket add Aspose.Slides.NET --version 17.5.0
#r "nuget: Aspose.Slides.NET, 17.5.0"
// Install Aspose.Slides.NET as a Cake Addin #addin nuget:?package=Aspose.Slides.NET&version=17.5.0 // Install Aspose.Slides.NET as a Cake Tool #tool nuget:?package=Aspose.Slides.NET&version=17.5.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 | Versions 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. |
This package has no dependencies.
NuGet packages (18)
Showing the top 5 NuGet packages that depend on Aspose.Slides.NET:
Package | Downloads |
---|---|
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
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. |
|
Aspose.Slides.WebExtensions
New Aspose.Slides HTML Export system, which allows exporting PowerPoint presentation as a highly customizable HTML/CSS/JS web document. |
|
AsposeHelpers
Aspose helpers |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
24.10.0 | 1,749 | 10/8/2024 |
24.9.0 | 10,666 | 9/12/2024 |
24.8.0 | 28,155 | 8/2/2024 |
24.7.0 | 14,067 | 7/17/2024 |
24.6.0 | 22,839 | 6/11/2024 |
24.5.0 | 31,922 | 5/8/2024 |
24.4.0 | 27,921 | 4/15/2024 |
24.3.0 | 56,741 | 3/15/2024 |
24.2.0 | 36,508 | 2/16/2024 |
24.1.0 | 46,831 | 1/19/2024 |
23.12.0 | 71,513 | 12/11/2023 |
23.11.0 | 90,504 | 11/16/2023 |
23.10.0 | 104,831 | 10/19/2023 |
23.9.0 | 80,429 | 9/20/2023 |
23.8.0 | 60,149 | 8/21/2023 |
23.7.0 | 46,847 | 7/18/2023 |
23.6.0 | 47,317 | 6/26/2023 |
23.5.0 | 131,488 | 5/19/2023 |
23.4.0 | 115,420 | 4/20/2023 |
23.3.1 | 77,350 | 3/23/2023 |
23.2.0 | 51,529 | 2/27/2023 |
23.1.0 | 175,880 | 1/27/2023 |
22.12.0 | 189,725 | 12/16/2022 |
22.11.0 | 125,506 | 11/23/2022 |
22.10.0 | 238,664 | 10/18/2022 |
22.9.0 | 109,315 | 9/13/2022 |
22.8.0 | 61,484 | 8/17/2022 |
22.7.0 | 80,494 | 7/19/2022 |
22.6.0 | 87,776 | 6/24/2022 |
22.5.0 | 96,897 | 5/17/2022 |
22.4.0 | 90,425 | 4/15/2022 |
22.3.0 | 69,358 | 3/17/2022 |
22.2.0 | 128,405 | 2/16/2022 |
22.1.0 | 115,837 | 1/19/2022 |
21.12.0 | 84,785 | 12/17/2021 |
21.11.0 | 109,824 | 11/16/2021 |
21.10.0 | 98,224 | 10/7/2021 |
21.9.0 | 349,555 | 9/20/2021 |
21.8.0 | 95,732 | 8/16/2021 |
21.7.0 | 84,943 | 7/15/2021 |
21.6.0 | 37,397 | 6/17/2021 |
21.5.0 | 66,134 | 5/18/2021 |
21.4.0 | 91,197 | 4/18/2021 |
21.3.0 | 87,439 | 3/19/2021 |
21.2.0 | 97,616 | 2/16/2021 |
21.1.0 | 94,395 | 1/21/2021 |
20.12.0 | 93,944 | 12/10/2020 |
20.11.1 | 6,535 | 12/10/2020 |
20.11.0 | 128,081 | 12/23/2020 |
20.10.0 | 78,068 | 10/19/2020 |
20.9.0 | 24,232 | 9/25/2020 |
20.8.0 | 62,208 | 8/17/2020 |
20.7.0 | 50,703 | 7/17/2020 |
20.6.0 | 65,839 | 6/12/2020 |
20.5.0 | 60,415 | 5/7/2020 |
20.4.0 | 48,624 | 4/22/2020 |
20.3.0 | 55,319 | 3/23/2020 |
20.2.0 | 84,657 | 2/17/2020 |
20.1.0 | 67,888 | 1/17/2020 |
19.12.0 | 54,178 | 12/31/2019 |
19.11.0 | 47,303 | 11/27/2019 |
19.10.0 | 70,586 | 10/29/2019 |
19.9.0 | 63,782 | 9/12/2019 |
19.8.0 | 12,712 | 8/30/2019 |
19.7.0 | 40,506 | 7/26/2019 |
19.6.0 | 28,150 | 6/25/2019 |
19.5.0 | 20,030 | 5/31/2019 |
19.4.0 | 30,440 | 4/26/2019 |
19.3.0 | 13,961 | 4/3/2019 |
19.2.0 | 36,698 | 2/28/2019 |
19.1.0 | 84,566 | 1/30/2019 |
18.12.0 | 52,057 | 12/27/2018 |
18.11.0 | 27,314 | 11/30/2018 |
18.10.0 | 53,896 | 10/30/2018 |
18.9.0 | 17,997 | 9/30/2018 |
18.8.0 | 17,136 | 8/29/2018 |
18.7.0 | 29,525 | 7/27/2018 |
18.6.0 | 37,408 | 7/1/2018 |
18.5.0 | 17,010 | 5/30/2018 |
18.4.0 | 34,498 | 5/3/2018 |
18.3.0 | 18,770 | 4/1/2018 |
18.2.1 | 54,281 | 3/7/2018 |
18.2.0 | 30,406 | 2/28/2018 |
18.1.0 | 29,899 | 1/30/2018 |
17.12.1 | 15,219 | 12/26/2017 |
17.12.0 | 4,631 | 12/16/2017 |
17.11.0 | 7,664 | 11/30/2017 |
17.10.0 | 26,300 | 10/31/2017 |
17.9.1 | 7,400 | 10/12/2017 |
17.9.0 | 6,938 | 10/2/2017 |
17.8.0 | 54,869 | 8/30/2017 |
17.7.0 | 18,829 | 7/31/2017 |
17.6.0 | 11,233 | 7/1/2017 |
17.5.0 | 8,468 | 5/31/2017 |
17.4.0 | 9,748 | 4/28/2017 |
17.3.0 | 16,775 | 4/2/2017 |
17.2.0 | 36,726 | 3/1/2017 |
17.1.0 | 8,391 | 1/31/2017 |
16.12.1 | 15,213 | 1/16/2017 |
16.12.0 | 5,709 | 12/27/2016 |
16.11.0 | 9,159 | 11/30/2016 |
16.10.0 | 11,755 | 11/4/2016 |
16.9.0 | 8,306 | 10/12/2016 |
16.8.0 | 40,235 | 9/27/2016 |
16.7.0 | 5,272 | 8/22/2016 |
16.6.0 | 53,399 | 7/15/2016 |
16.5.0 | 13,055 | 6/16/2016 |
16.4.0 | 9,320 | 5/16/2016 |
16.3.0 | 18,446 | 4/11/2016 |
16.2.0 | 9,464 | 3/17/2016 |
16.1.0 | 22,084 | 2/4/2016 |
15.11.0 | 30,348 | 1/11/2016 |
15.10.0 | 13,590 | 12/10/2015 |
15.9.0 | 10,520 | 11/6/2015 |
15.8.1 | 4,281 | 10/16/2015 |
15.8.0 | 5,120 | 10/5/2015 |
15.7.0 | 74,070 | 9/3/2015 |
15.6.0 | 34,925 | 7/22/2015 |
15.5.0 | 11,059 | 6/16/2015 |
15.4.0 | 8,327 | 5/14/2015 |
15.3.1 | 6,459 | 4/23/2015 |
15.3.0 | 3,984 | 4/14/2015 |
15.2.0 | 42,321 | 3/6/2015 |
15.1.0 | 11,805 | 2/3/2015 |
14.10.0 | 15,399 | 11/28/2014 |
14.9.0 | 7,231 | 11/11/2014 |
14.8.1 | 4,661 | 10/24/2014 |
14.8.0 | 3,823 | 10/16/2014 |
14.7.0 | 5,050 | 9/7/2014 |
14.6.0 | 4,639 | 8/6/2014 |
14.5.0 | 8,731 | 7/16/2014 |
14.4.0 | 5,919 | 6/2/2014 |
14.3.0 | 8,049 | 5/6/2014 |
14.2.0 | 4,363 | 3/24/2014 |
14.1.2 | 6,351 | 2/17/2014 |
14.1.1 | 3,685 | 2/10/2014 |
14.1.0.2 | 3,560 | 2/6/2014 |
13.12.0 | 4,566 | 12/30/2013 |
8.4.2 | 45,223 | 6/5/2014 |
8.4.1 | 4,208 | 5/6/2014 |
8.4.0 | 6,463 | 3/3/2014 |
8.3.0.1 | 3,981 | 2/3/2014 |
8.2.0 | 3,790 | 12/27/2013 |
8.1.0 | 11,261 | 12/16/2013 |
8.0.0 | 4,970 | 10/25/2013 |
7.9.0 | 4,197 | 10/8/2013 |
7.8.0 | 3,822 | 9/3/2013 |
7.7.0 | 11,846 | 8/4/2013 |
7.6.0 | 7,114 | 7/5/2013 |
7.5.0 | 6,220 | 5/27/2013 |
7.4.0 | 10,240 | 4/24/2013 |
7.3.0 | 3,609 | 4/10/2013 |
7.2.0 | 4,236 | 3/8/2013 |
7.1.0 | 5,976 | 1/28/2013 |
7.0.0 | 5,995 | 12/31/2012 |
6.9.0 | 3,585 | 12/10/2012 |
6.8.0 | 3,961 | 10/30/2012 |
6.7.0 | 4,285 | 10/4/2012 |
6.6.0 | 3,493 | 9/13/2012 |
6.5.0 | 3,838 | 7/27/2012 |
6.4.0 | 3,582 | 6/27/2012 |
6.3.0 | 3,516 | 5/29/2012 |
6.2.0 | 3,707 | 5/7/2012 |
6.1.0 | 3,613 | 3/28/2012 |
6.0.0 | 3,970 | 3/2/2012 |
5.9.0.1 | 7,813 | 2/16/2012 |
5.9.0 | 6,845 | 2/16/2012 |
SLIDESNET-38576 - Size of SWF generated is too high
SLIDESNET-38499 - PowerPoint to SVG with shape ID
SLIDESNET-38379 - Implement using HeaderFooterManager for slide/master/layout
SLIDESNET-38608 - Exception on saving presentation
SLIDESNET-38593 - Exported file cannot be opened via Aspose.Slides
SLIDESNET-38584 - Exception on converting PPTX to PDF
SLIDESNET-38572 - PPTX not converted properly to tiff
SLIDESNET-38570 - Incorrect Presentation instantiating with empty string password
SLIDESNET-38568 - PPT not converted properly to PDF
SLIDESNET-38553 - Text changed to asterisk
SLIDESNET-38550 - Changes in Workbook doesn't get saved
SLIDESNET-38548 - PPT to tiff not properly converted
SLIDESNET-38547 - Conversion to PDF with low quality of images
SLIDESNET-38537 - Adding Doughnut chart from scratch does not work
SLIDESNET-38536 - PPT not converted properly to PDF
SLIDESNET-38527 - PPT not converted properly to PDF
SLIDESNET-38526 - Zoom problem in generated presentation
SLIDESNET-38520 - Images are not properly generated from PPT
SLIDESNET-38516 - Text are changed after saving PPT
SLIDESNET-38514 - Text becomes shorter after saving PPT
SLIDESNET-38504 - PPT changed after saving
SLIDESNET-38464 - Problems editing chart after saving PPTX
SLIDESNET-38454 - Table width is changed after saving file
SLIDESNET-38422 - Incorrect font when rendering to HTML
SLIDESNET-38299 - Footer is not working properly
SLIDESNET-37736 - Footer failed to apply in presentation
SLIDESNET-36678 - Text gets bigger
Public API Changes
HeaderFooterManager specialized classes and interfaces have been added
IBaseHeaderFooterManager, IBaseSlideHeaderFooterManager, IMasterSlideHeaderFooterManager, ILayoutSlideHeaderFooterManager, ISlideHeaderFooterManager, IPresentationHeaderFooterManager interfaces and BaseHeaderFooterManager, BaseSlideHeaderFooterManager, MasterSlideHeaderFooterManager, LayoutSlideHeaderFooterManager, SlideHeaderFooterManager, PresentationHeaderFooterManager classes have been added. These types allow managing Header Footer settings of different presentation elements.
The base IBaseHeaderFooterManager interface of all listed types has following properties and methods.
These properties allow getting value indicating that a footer, page number and date-time placeholders are present:
bool IsFooterVisible { get; }
bool IsSlideNumberVisible { get; }
bool IsDateTimeVisible { get; }
These methods allow changing footer, page number and date-time placeholders visibility:
void SetFooterVisibility(bool isVisible);
void SetSlideNumberVisibility(bool isVisible);
void SetDateTimeVisibility(bool isVisible);
These methods allow setting text to footer and date-time placeholder:
void SetFooterText(string text);
void SetDateTimeText(string text);
In addition, IMasterSlideHeaderFooterManager and ILayoutSlideHeaderFooterManager have following properties and methods to manage instance own and all childs elements Header and Footer settings.
These methods allow changing master/layout slide footer, page number, date-time placeholder and all child footer placeholders visibility. Child placeholders mean placeholders are contained on depending layout slides and depending slides. Depending layout slides and slides use and depend on master slide:
void SetFooterAndChildFootersVisibility(bool isVisible);
void SetSlideNumberAndChildSlideNumbersVisibility(bool isVisible);
void SetDateTimeAndChildDateTimesVisibility(bool isVisible);
These methods allow setting text to master/layout slide footer and date-time placeholder and all child footer placeholders. Child placeholders mean placeholders are contained on depending layout slides and depending slides. Depending layout slides and slides use and depend on master slide:
void SetFooterAndChildFootersText(string text);
void SetDateTimeAndChildDateTimesText(string text);
New properties have been added to access the added types.
IMasterSlideHeaderFooterManager IMasterSlide.HeaderFooterManager { get; }
ILayoutSlideHeaderFooterManager ILayoutSlide.HeaderFooterManager { get; }
ISlideHeaderFooterManager ISlide.HeaderFooterManager { get; }
The type of the property has been changed
IPresentationSlideHeaderFooterManager IPresentation.HeaderFooterManager { get; }
IHeaderFooterManager and class HeaderFooterManager have been marked as Obsolete.
Usage examples:
using (Presentation presentation = new Presentation("presentation.ppt"))
{
IBaseSlideHeaderFooterManager headerFooterManager = presentation.Slides[0].HeaderFooterManager;
if (!headerFooterManager.IsFooterVisible) // Property IsFooterVisible is used for indicating that a slide footer placeholder is not present.
{
headerFooterManager.SetFooterVisibility(true); // Method SetFooterVisibility is used for making a slide footer placeholder visible.
}
if (!headerFooterManager.IsSlideNumberVisible) // Property IsSlideNumberVisible is used for indicating that a slide page number placeholder is not present.
{
headerFooterManager.SetSlideNumberVisibility(true); // Method SetSlideNumberVisibility is used for making a slide page number placeholder visible.
}
if (!headerFooterManager.IsDateTimeVisible) // Property IsDateTimeVisible is used for indicating that a slide date-time placeholder is not present.
{
headerFooterManager.SetDateTimeVisibility(true); // Method SetFooterVisibility is used for making a slide date-time placeholder visible.
}
headerFooterManager.SetFooterText("Footer text"); // Method SetFooterText is used for setting text to slide footer placeholder.
headerFooterManager.SetDateTimeText("Date and time text"); // Method SetDateTimeText is used for setting text to slide date-time placeholder.
}
using (Presentation presentation = new Presentation("presentation.ppt"))
{
IMasterSlideHeaderFooterManager headerFooterManager = presentation.Masters[0].HeaderFooterManager;
headerFooterManager.SetFooterAndChildFootersVisibility(true); // Method SetFooterAndChildFootersVisibility is used for making a master slide and all child footer placeholders visible.
headerFooterManager.SetSlideNumberAndChildSlideNumbersVisibility(true); // Method SetSlideNumberAndChildSlideNumbersVisibility is used for making a master slide and all child page number placeholders visible.
headerFooterManager.SetDateTimeAndChildDateTimesVisibility(true); // Method SetDateTimeAndChildDateTimesVisibility is used for making a master slide and all child date-time placeholders visible.
headerFooterManager.SetFooterAndChildFootersText("Footer text"); // Method SetFooterAndChildFootersText is used for setting text to master slide and all child footer placeholders.
headerFooterManager.SetDateTimeAndChildDateTimesText("Date and time text"); // Method SetDateTimeAndChildDateTimesText is used for setting text to master slide and all child date-time placeholders.
}
Id property has been added to ISvgShape
Id property has been added to ISvgShape to support custom IDs of shapes in generated SVG. Below is the example of custom SVG Shape formatting controller to set custom shape IDs:
class CustomSvgShapeFormattingController : ISvgShapeFormattingController
{
private int m_shapeIndex;
public CustomSvgShapeFormattingController(int shapeStartIndex = 0)
{
m_shapeIndex = shapeStartIndex;
}
public void FormatShape(ISvgShape svgShape, IShape shape)
{
svgShape.Id = string.Format("shape-{0}", m_shapeIndex++);
}
}
New EmbedAllFontsHtmlController has been added
A new HTML Controller has been added: EmbedAllFontsHtmlController. It is used to embed all presentation fonts in HTML document. Here's an example of using this new controller:
using (Presentation pres = new Presentation("pres.pptx"))
{
// exclude default presentation fonts
string[] fontNameExcludeList = { "Calibri", "Arial" };
EmbedAllFontsHtmlController embedFontsController = new EmbedAllFontsHtmlController(fontNameExcludeList);
HtmlOptions htmlOptionsEmbed = new HtmlOptions
{
HtmlFormatter = HtmlFormatter.CreateCustomFormatter(embedFontsController)
};
pres.Save("pres.html", SaveFormat.Html, htmlOptionsEmbed);
}
Please note that EmbedAllFontsHtmlController has parameterized constructor where an array of font names can be passed to prevent them from embedding. Some fonts, like Calibri or Arial, used in presentation are not needed to be embedded (which leads the resulting HTML document become larger) because almost every system already has them installed.
Another major feature of EmbedAllFontsHtmlController is that it supports inheritance and WriteFont method is intended to be overridden:
public virtual void WriteFont(
IHtmlGenerator generator,
IFontData originalFont,
IFontData substitutedFont,
string fontStyle,
string fontWeight,
byte[] fontData)
{
// todo: serialize font as you need
}
By default, font embedded or serialized in HTML document as bas64 string. But for example, you may create your own controller to dump files somewhere in your own file structure. Below is a sample implementation of LinkAllFontsHtmlController controller intended to write font files on disk and just add link for it in @font-face:
class LinkAllFontsHtmlController : EmbedAllFontsHtmlController
{
private readonly string m_basePath;
public LinkAllFontsHtmlController(string[] fontNameExcludeList, string basePath)
: base(fontNameExcludeList)
{
m_basePath = basePath;
}
public override void WriteFont(
IHtmlGenerator generator,
IFontData originalFont,
IFontData substitutedFont,
string fontStyle,
string fontWeight,
byte[] fontData)
{
string fontName = substitutedFont == null ? originalFont.FontName : substitutedFont.FontName;
string path = string.Format("{0}.woff", fontName); // some path sanitaze may be needed
File.WriteAllBytes(Path.Combine(m_basePath, path), fontData);
generator.AddHtml("<style>");
generator.AddHtml("@font-face { ");
generator.AddHtml(string.Format("font-family: '{0}'; ", fontName));
generator.AddHtml(string.Format("src: url('{0}')", path));
generator.AddHtml(" }");
generator.AddHtml("</style>");
}
}