Create Presentations in C++
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. 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 in a Visual Studio project on Windows, or from the ZIP package with CMake on Linux. See Installation.
Create a PowerPoint Presentation
To create a presentation and put a text box on its first slide, follow these steps:
- Create an instance of the Presentation class. A new presentation already contains one empty slide.
- Get that slide with the Presentation::get_Slide method and its index, 0.
- Add a rectangle with the IShapeCollection::AddAutoShape method, and set its text with the ITextFrame::set_Text method.
- Save the presentation as a PPTX file with the Presentation::Save method.
#include <DOM/Presentation.h>
#include <DOM/ISlide.h>
#include <DOM/IShapeCollection.h>
#include <DOM/IAutoShape.h>
#include <DOM/ITextFrame.h>
#include <DOM/ShapeType.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
int main()
{
auto presentation = MakeObject<Presentation>();
auto slide = presentation->get_Slide(0);
auto shape = slide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 50, 50, 400, 100);
shape->get_TextFrame()->set_Text(u"Hello, Aspose.Slides!");
presentation->Save(u"hello.pptx", SaveFormat::Pptx);
presentation->Dispose();
return 0;
}
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 program saves hello.pptx in its working directory, with one slide that holds the rectangle and its text. Without a license, Aspose.Slides also adds an evaluation watermark to every slide it saves; see Licensing.
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.