Präsentationen in C++ erstellen

Übersicht

Dieser Artikel zeigt, wie man eine Präsentation in Aspose.Slides erstellt, eine Textbox zur ersten Folie hinzufügt und das Ergebnis als Datei speichert. Ein kurzer FAQ am Ende behandelt häufige Fragen zu Formaten, Vorlagen, Foliengröße, Einheiten, Speicherverbrauch, Threading, Lizenzierung, digitalen Signaturen und VBA‑Unterstützung.

Bevor Sie beginnen, fügen Sie Aspose.Slides zu Ihrem Projekt hinzu: aus NuGet in einem Visual Studio‑Projekt unter Windows oder aus dem ZIP‑Paket mit CMake unter Linux. Siehe Installation.

PowerPoint‑Präsentation erstellen

Um eine Präsentation zu erstellen und eine Textbox auf der ersten Folie zu platzieren, folgen Sie diesen Schritten:

  1. Erstellen Sie eine Instanz der Presentation Klasse. Eine neue Präsentation enthält bereits eine leere Folie.
  2. Rufen Sie diese Folie mit der Methode Presentation::get_Slide und dem Index 0 ab.
  3. Fügen Sie mit der Methode IShapeCollection::AddAutoShape ein Rechteck hinzu und setzen Sie dessen Text mit der Methode ITextFrame::set_Text.
  4. Speichern Sie die Präsentation als PPTX‑Datei mit der Methode Presentation::Save.
#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;
}

Die linke obere Ecke des Rechtecks befindet sich 50 Punkte vom linken Rand und 50 Punkte vom oberen Rand der Folie entfernt, und das Rechteck ist 400 Punkte breit und 100 Punkte hoch. Das Programm speichert hello.pptx im Arbeitsverzeichnis, mit einer Folie, die das Rechteck und dessen Text enthält. Ohne Lizenz fügt Aspose.Slides jeder gespeicherten Folie ein Evaluierungs‑Wasserzeichen hinzu; siehe Lizenzierung.

FAQ

In welche Formate kann ich eine neue Präsentation speichern?

Sie können in PPTX, PPT und ODP speichern und nach PDF, XPS, HTML, SVG und Bildern exportieren, unter anderem.

Kann ich von einer Vorlage (POTX/POTM) ausgehen und als reguläres PPTX speichern?

Ja. Laden Sie die Vorlage und speichern Sie sie im gewünschten Format; POTX/POTM/PPTM und ähnliche Formate werden unterstützt.

Wie kann ich die Foliengröße bzw. das Seitenverhältnis beim Erstellen einer Präsentation steuern?

Legen Sie die Foliengröße fest (inklusive Vorgaben wie 4:3 und 16:9 oder benutzerdefinierte Abmessungen) und wählen Sie, wie der Inhalt skaliert werden soll.

In welchen Einheiten werden Größen und Koordinaten gemessen?

In Punkten: 1 Zoll entspricht 72 Einheiten.

Wie gehe ich mit sehr großen Präsentationen (mit vielen Mediendateien) um, um den Speicherverbrauch zu reduzieren?

Verwenden Sie BLOB‑Verwaltungsstrategien, begrenzen Sie den In‑Memory‑Speicher durch die Nutzung temporärer Dateien und bevorzugen Sie dateibasierte Workflows statt reiner In‑Memory‑Streams.

Kann ich Präsentationen parallel erstellen/speichern?

Sie können nicht dieselbe Presentation Instanz von mehreren Threads aus verwenden. Führen Sie separate, isolierte Instanzen pro Thread oder Prozess aus.

Wie entferne ich das Test‑Wasserzeichen und die Beschränkungen?

Wenden Sie eine Lizenz pro Prozess an. Die Lizenz‑XML darf nicht verändert werden, und die Lizenz‑Einrichtung sollte synchronisiert werden, wenn mehrere Threads beteiligt sind.

Kann ich das von mir erstellte PPTX digital signieren?

Ja. Digitale Signaturen (Hinzufügen und Verifizieren) werden für Präsentationen unterstützt.

Werden Makros (VBA) in erstellten Präsentationen unterstützt?

Ja. Sie können VBA‑Projekte erstellen/bearbeiten und makrofähige Dateien wie PPTM/PPSM speichern.