Einleitung

Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx Dateien in nativem C++, ohne Abhängigkeit von Microsoft Office oder irgendeinem proprietären Laufzeit.

Die Bibliothek ist für Entwickler konzipiert, die Präsentationsdateien programmgesteuert erzeugen oder manipulieren müssen: das Automatisieren von Folienpräsentationen aus Daten, das Extrahieren von Text und Metadaten aus hochgeladenen PPTX‑Dateien, das Erstellen von berichtsbasierten Präsentations‑Pipelines oder das Einbetten der Präsentationserstellung in Desktop‑ und Server‑Anwendungen. Weil aspose_slides_foss ist mit CMake gebaut, kompiliert und wird auf Windows, macOS und Linux bereitgestellt.

Hauptfunktionen

  • Vollständige Round‑Trip‑Unterstützung für PPTX: Öffnen Sie beliebige .pptx Datei, ändern Sie deren Inhalt und speichern Sie sie wieder, ohne unbekannte XML‑Teile zu verlieren, die die Bibliothek noch nicht versteht.
  • Folienverwaltung: Hinzufügen, Entfernen und Durchlaufen von Folien mit prs.slides(); die Präsentation beginnt mit einer leeren Folie nach dem Erstellen einer Presentation.
  • AutoShapes, Tabellen und Verbinder: Formen einfügen über slide.shapes().add_auto_shape(), tabellarische Daten über slide.shapes().add_table(), und visuelle Verbinder zwischen Formen über slide.shapes().add_connector().
  • Rich-Text-Formatierung: Formatiere Text auf Zeichenebene mit PortionFormat: Schriftgröße, Fett, Kursiv, Unterstreichen und ARGB-Farbe über FillType::SOLID und ColorFormat.
  • Fülltypen: Anwenden FillType::SOLID, Gradient, Pattern, oder Picture Füllungen auf jede Form.
  • Visuelle Effekte: Außenschatten, Leuchten, weiche Kante, Unschärfe, Spiegelung und Innenschatten über shape.effect_format().
  • 3D formatting: Abrundung, Kamera, Licht-Rig, Material und Extrusionstiefe über shape.three_d_format().
  • Sprecher-Notizen: Notiztext an jede Folie anhängen über notes_slide_manager().add_notes_slide().
  • Verzweigte Kommentare: Kommentare mit Autor-Metadaten und Folienposition hinzufügen.
  • Eingebettete Bilder: Einbetten aus Dateipfad, Speicherpuffer oder Stream.
  • Dokumenteigenschaften: Kern-, App- und benutzerdefinierte Eigenschaften lesen und schreiben.

Erste Schritte

Fügen Sie die Bibliothek über CMake hinzu. Ein C++17‑Compiler ist erforderlich.

include(FetchContent)
FetchContent_Declare(
    aspose_slides_foss
    GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
    GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
target_link_libraries(your_target PRIVATE aspose_slides_foss)

Erstellen Sie Ihre erste Präsentation mit einer Form und speichern Sie sie:

#include <Aspose/Slides/Foss/presentation.h>

int main() {
    using namespace Aspose::Slides::Foss;

    Presentation prs;
    auto& slide = prs.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(
        ShapeType::RECTANGLE, 50, 50, 400, 120
    );
    shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
    prs.save("hello.pptx", SaveFormat::PPTX);
    return 0;
}

Der Presentation destructor gibt alle internen Ressourcen automatisch frei, wenn er aus dem Gültigkeitsbereich geht.

Textformate Beispiel

#include <Aspose/Slides/Foss/presentation.h>

using namespace Aspose::Slides::Foss;

Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
    ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);

Aktuelle Einschränkungen

Die folgenden Bereiche werfen in dieser Version Ausnahmen:

  • Charts, SmartArt und OLE-Objekte
  • Animationen und Slide-Übergänge
  • Exportieren in PDF, HTML, SVG oder Bildformate
  • Hyperlinks, Aktionseinstellungen, VBA-Makros und digitale Signaturen

Unbekannte XML-Teile, die während des Lades auftreten, werden verbatim auf speichern beibehalten, so dass PPTX-Dateien, die von anderen Tools erzeugt werden, sicher rundreisen.

Siehe auch