Supported File Formats
Overview
Aspose.Slides for .NET opens and saves PowerPoint and OpenDocument presentations. It also imports PDF and HTML content into slides, saves presentations to document, web, and image formats, and renders individual slides and shapes as images. This article lists each supported format and names the API that reads or writes it.
Both NuGet packages, Aspose.Slides.NET and Aspose.Slides.NET6.CrossPlatform, support the same formats; see Installation to choose between them. For an overview of editing features, see Features Overview.
Supported Microsoft PowerPoint Versions
- Microsoft PowerPoint 97
- Microsoft PowerPoint 2000
- Microsoft PowerPoint XP
- Microsoft PowerPoint 2003
- Microsoft PowerPoint 2007
- Microsoft PowerPoint 2010
- Microsoft PowerPoint 2013
- Microsoft PowerPoint 2016
- Microsoft PowerPoint 2019
- Microsoft PowerPoint for Mac
- PowerPoint for Microsoft 365 (formerly Office 365)
Note
Presentations saved by PowerPoint 95 and earlier versions cannot be opened. PresentationFactory.GetPresentationInfo recognizes a PowerPoint 95 file and reportsLoadFormat.Ppt95, but the Presentation constructor throws PptUnsupportedFormatException for it.
Supported File Formats
The table uses four operations:
- Load: the Presentation constructor opens the file as an editable presentation.
- Import: a SlideCollection method creates slides from the file’s content and adds them to an existing presentation. The Presentation constructor does not load these files as presentations.
- Save: Presentation.Save writes the presentation to a file or stream. Every format except XAML is selected with a SaveFormat value.
- Render: a rendering method draws a slide or a shape as an image. Formats that are only rendered are not SaveFormat values.
| Format | Description | Load / Import | Save / Render | API |
|---|---|---|---|---|
| PPT | PowerPoint 97-2003 Presentation | Load | Save | LoadFormat.Ppt, SaveFormat.Ppt |
| POT | PowerPoint 97-2003 Template | Load | Save | LoadFormat.Pot, SaveFormat.Pot |
| PPS | PowerPoint 97-2003 Slide Show | Load | Save | LoadFormat.Pps, SaveFormat.Pps |
| PPTX | PowerPoint Presentation | Load | Save | LoadFormat.Pptx, SaveFormat.Pptx |
| POTX | PowerPoint Template | Load | Save | LoadFormat.Potx, SaveFormat.Potx |
| PPSX | PowerPoint Slide Show | Load | Save | LoadFormat.Ppsx, SaveFormat.Ppsx |
| PPTM | PowerPoint Macro-Enabled Presentation | Load | Save | LoadFormat.Pptm, SaveFormat.Pptm |
| POTM | PowerPoint Macro-Enabled Template | Load | Save | LoadFormat.Potm, SaveFormat.Potm |
| PPSM | PowerPoint Macro-Enabled Slide Show | Load | Save | LoadFormat.Ppsm, SaveFormat.Ppsm |
| ODP | OpenDocument Presentation | Load | Save | LoadFormat.Odp, SaveFormat.Odp |
| FODP | Flat XML OpenDocument Presentation | Load | Save | LoadFormat.Fodp, SaveFormat.Fodp |
| OTP | OpenDocument Presentation Template | Load | Save | LoadFormat.Otp, SaveFormat.Otp |
| XML | PowerPoint XML Presentation | Load | Save | SaveFormat.Xml; loaded files report SourceFormat.Xml (there is no LoadFormat value) |
| Portable Document Format | Import | Save | SlideCollection.AddFromPdf; SaveFormat.Pdf |
|
| HTML | Hypertext Markup Language | Import | Save | SlideCollection.AddFromHtml, SlideCollection.InsertFromHtml; SaveFormat.Html, SaveFormat.Html5 |
| XPS | XML Paper Specification | — | Save | SaveFormat.Xps |
| TIFF | Tagged Image File Format | — | Save, Render | SaveFormat.Tiff; ImageFormat.Tiff (one slide) |
| GIF | Graphics Interchange Format | — | Save, Render | SaveFormat.Gif (animated, all slides); ImageFormat.Gif (one slide) |
| SWF | Small Web Format (Flash) | — | Save | SaveFormat.Swf |
| MD | Markdown | — | Save | SaveFormat.Md |
| XAML | Extensible Application Markup Language | — | Save | Presentation.Save(IXamlOptions), one XAML file per slide; not a SaveFormat value |
| PNG | Portable Network Graphics | — | Render | ImageFormat.Png |
| JPEG | JPEG Image | — | Render | ImageFormat.Jpeg |
| BMP | Bitmap Image | — | Render | ImageFormat.Bmp |
| EMF | Enhanced Metafile | — | Render | Slide.WriteAsEmf |
| SVG | Scalable Vector Graphics | — | Render | Slide.WriteAsSvg, Shape.WriteAsSvg |
Load and Import
- Load: Pass a file path or a stream to the Presentation constructor. The format is detected from the content; LoadOptions supplies settings such as a password. To check a file before opening it, call PresentationFactory.GetPresentationInfo, which reports a LoadFormat value. It reports
LoadFormat.Unknownfor PowerPoint XML, but the constructor opens such a file, and Presentation.SourceFormat then returnsSourceFormat.Xml. See Open Presentations and Determine the Original Presentation Format. - Import: SlideCollection.AddFromPdf adds one slide per PDF page to the end of a presentation. SlideCollection.AddFromHtml adds slides created from HTML, and SlideCollection.InsertFromHtml inserts them at a given position. The Presentation constructor does not import: it throws PptUnsupportedFormatException for a PDF file and does not convert HTML markup into slide content. See Import Presentations from PDF or HTML.
Save and Render
- Save: Presentation.Save writes the presentation in the format of a SaveFormat value. Overloads that also take an options object control the output, for example PdfOptions, HtmlOptions, Html5Options, TiffOptions, and GifOptions. Overloads that take an array of slide positions, starting from 1, write only those slides; they accept PDF, XPS, TIFF, HTML, HTML5, SWF, GIF, and Markdown, but not the presentation formats or PowerPoint XML. XAML has its own overload that takes IXamlOptions. See Save Presentations, Convert Presentations, and Export Presentations to XAML.
- Render: Slide.GetImage and Shape.GetImage return an IImage, and IImage.Save writes it as PNG, JPEG, BMP, GIF, or TIFF, selected with an ImageFormat value. Presentation.GetImages renders all slides or selected slides at once. Slide.WriteAsSvg and Shape.WriteAsSvg write SVG, and Slide.WriteAsEmf writes EMF. See Convert Presentation Slides to Images and Render a Slide as an SVG Image.
Warning
ImageFormat also hasEmf, Wmf, Icon, Exif, and MemoryBmp values, but IImage.Save does not produce those formats: the file it writes contains PNG data. To get an EMF image of a slide, use Slide.WriteAsEmf.
FAQ
Can I convert a PPT presentation to PPTX or ODP?
Yes. Open the PPT file with the Presentation constructor and save it with SaveFormat.Pptx or SaveFormat.Odp. See Convert PPT to PPTX.
Can I open a PDF or HTML file as a presentation?
No. Create or open a presentation, import the PDF pages or HTML content into it with the slide collection methods described above, and then save it in any supported format.
Can I load an exported PNG or SVG image as an editable presentation?
No. Image output records how a slide looks, not its text, shapes, or charts. Keep the source presentation if you need to edit it later.
Can I save PDF/A or PDF/UA documents?
Yes. Set PdfOptions.Compliance to a PdfCompliance value: PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-2u, PDF/A-3a, PDF/A-3b, or PDF/UA.
Can I check whether a file is password-protected before opening it?
Yes. PresentationFactory.GetPresentationInfo inspects a file without creating a Presentation object, and its IsPasswordProtected property reports whether a password is needed. See Password-Protect Presentations.
Do the two NuGet packages support different formats?
No. Aspose.Slides.NET and Aspose.Slides.NET6.CrossPlatform have the same LoadFormat and SaveFormat values and the same import and rendering methods. They differ in the platforms they run on and in what those platforms need; see Installation.