Create Presentations in .NET

Overview

This article shows how to create a presentation in Aspose.Slides, add a text box to its first slide, and save the result as a file. It also shows how to create and save an empty presentation, and how to open an existing presentation in a supported format and save it in another format. A short FAQ at the end covers common questions about formats, templates, slide sizing, units, memory usage, threading, licensing, digital signatures, and VBA support.

Before you begin, add Aspose.Slides to your project from NuGet. See Installation for the package to use on Windows, Linux, and macOS.

Create a PowerPoint Presentation

To create a presentation and put a text box on its first slide, follow these steps:

  1. Create an instance of the Presentation class. A new presentation already contains one empty slide.
  2. Get that slide from the Slides collection by its index, 0.
  3. Add a rectangle with the AddAutoShape method and set its text.
  4. Save the presentation as a PPTX file with the Save method.
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();
var slide = presentation.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 400, 100);
shape.TextFrame.Text = "Hello, Aspose.Slides!";
presentation.Save("hello.pptx", SaveFormat.Pptx);

The rectangle’s top-left corner is 50 points from the left edge and 50 points from the top edge of the slide, and the rectangle is 400 points wide and 100 points high. The saved file contains one slide with that rectangle and its text. Without a license, Aspose.Slides also adds an evaluation watermark to every slide it saves; see Licensing.

Create and Save a Presentation

To create an empty presentation and save it, create an instance of the Presentation class and save it in any format of the SaveFormat enumeration. The result is a presentation with one empty slide.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();
presentation.Save("OutputPresentation.pptx", SaveFormat.Pptx);

Open and Save a Presentation

To convert a presentation from one format to another, open it by passing its path to the Presentation constructor, then save it in the target format. Aspose.Slides detects the input format, such as PPT, PPTX, or ODP, from the file itself.

The example below expects an OpenDocument presentation named Sample.odp in the working directory and saves it as PPTX.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("Sample.odp");
presentation.Save("OutputPresentation.pptx", SaveFormat.Pptx);

FAQ

What formats can I save a new presentation to?

You can save to PPTX, PPT, and ODP, and export to PDF, XPS, HTML, SVG, and images, among others.

Can I start from a template (POTX/POTM) and save as a regular PPTX?

Yes. Load the template and save to the desired format; POTX/POTM/PPTM and similar formats are supported.

How do I control slide size/aspect ratio when creating a presentation?

Set the slide size (including presets like 4:3 and 16:9 or custom dimensions) and choose how content should scale.

In what units are sizes and coordinates measured?

In points: 1 inch equals 72 units.

How do I handle very large presentations (with many media files) to reduce memory usage?

Use BLOB management strategies, limit in-memory storage by leveraging temporary files, and prefer file-based workflows over purely in-memory streams.

Can I create/save presentations in parallel?

You cannot operate on the same Presentation instance from multiple threads. Run separate, isolated instances per thread or process.

How do I remove the trial watermark and limitations?

Apply a license once per process. The license XML must remain unmodified, and the license setup should be synchronized if multiple threads are involved.

Can I digitally sign the PPTX I create?

Yes. Digital signatures (adding and verifying) are supported for presentations.

Are macros (VBA) supported in created presentations?

Yes. You can create/edit VBA projects and save macro-enabled files such as PPTM/PPSM.