Migration to .NET Core in PowerPoint Presentation

14 Aug 20262 minutes to read

In this section, we will review the changes required when migrating the Syncfusion® .NET PowerPoint (Presentation) library from .NET Framework to .NET Core.

NuGet Packages

Packages targeting .NET Framework

Packages targeting .NET Standard 2.0/.NET Core

Syncfusion.Presentation.WinForms


Syncfusion.Presentation.Wpf


Syncfusion.Presentation.AspNet


Syncfusion.Presentation.AspNet.Mvc5


Syncfusion.Presentation.AspNet.Mvc4

Syncfusion.Presentation.Net.Core

Syncfusion.PresentationToPDFConverter.WinForms


Syncfusion.PresentationToPDFConverter.Wpf


Syncfusion.PresentationToPDFConverter.AspNet


Syncfusion.PresentationToPDFConverter.AspNet.Mvc4


Syncfusion.PresentationToPDFConverter.AspNet.Mvc5

Syncfusion.PresentationRenderer.Net.Core

(required for PowerPoint-to-PDF and PowerPoint-to-Image conversion)

Namespace changes

.NET Framework

Alternate Namespace in .NET Core

Syncfusion.PresentationToPdfConverter Syncfusion.PresentationRenderer
Syncfusion.OfficeChartToImageConverter Not applicable - Classes are moved within the Syncfusion.PresentationRenderer namespace.

Type changes

Missing Types

Alternate Types in .NET Core

ChartToImageConverter

Not applicable - It is handled internally.

Property changes

Missing properties

Alternate properties in .NET Core

IPresentation.ChartToImageConverter

Not applicable - It is handled internally.

PresentationToPdfConverterSettings.EnablePortableRendering

No code change required. Equivalent portable rendering is now the default behavior in .NET Core and is handled internally.

PresentationToPdfConverterSettings.RecreateNestedMetafile

Not supported due to .NET Core limitations. Nested metafile recreation has no workaround in .NET Core; flatten metafiles before conversion if required.

ITextBody.FitTextOption

Not supported in the current .NET Core release.

Method changes:

Missing methods

Alternate methods in .NET Core

Presentation.Open(String)

The path-based overload remains available. Alternatively, open a file as a stream using

Presentation.Open(Stream)

.

Presentation.Save(String)

The path-based overload remains available. Alternatively, save to a stream using

Presentation.Save(Stream)

.

Presentation.Save(string fileName, FormatType formatType, HttpResponse response)

You can save the document as stream and then download from browser.

IPresentationChart.SaveAsImage(Stream imageAsStream)

IPresentationRenderer.ConvertToImage(IPresentationChart chart, Stream outputStream)

Advantages

  • Cross-platform support: Windows, macOS, Linux, Docker, Azure, and AWS environments.
  • Full feature parity with the .NET Framework library for core PowerPoint creation, editing, and conversion scenarios.
  • A single package (Syncfusion.Presentation.Net.Core) replaces the multiple platform-specific packages required on .NET Framework.

Known limitations

  • EMF and WMF images are not supported in .NET Core. Replace any embedded EMF/WMF images with PNG or JPEG before conversion.
  • For a full list of platform-level limitations (chart types, OLE objects, and so on), see the Syncfusion PowerPoint library limitations page.

Notable changes

  • Graphics library: In .NET Framework, the library uses System.Drawing.Common for text measuring and graphics operations. In .NET Core, the library uses the SkiaSharp graphics library to provide the same behavior. When deploying to Linux, ensure the SkiaSharp native assets for the target runtime are available.
  • Separate renderer package: The following conversion features rely on SkiaSharp and are delivered through a separate package, Syncfusion.PresentationRenderer.Net.Core:
  • Font handling: During PowerPoint-to-PDF or PowerPoint-to-Image conversion, if you encounter font-related issues (such as missing fonts in the environment), pass the fonts as streams using the font substitution approach.

NOTE

If you want to migrate without any code changes from the Syncfusion.Presentation.AspNet.Mvc4 NuGet in an application targeting .NET Framework, you can use any of the following packages:

This approach is not recommended for new development.

See also