Aspose.Slides FOSS für C++ ist eine MIT-lizenzierte Bibliothek zum Arbeiten mit PowerPoint .pptx-Dateien. Integrieren Sie sie über CMake FetchContent und beginnen Sie sofort mit dem Erstellen, Lesen und Bearbeiten von Präsentationen, ohne Microsoft Office oder eine proprietäre Laufzeit zu installieren.
Die Bibliothek stellt eine Presentation‑API bereit, die um Presentation, Slide, ShapeCollection, TextFrame, Paragraph und Portion herum aufgebaut ist, das konzeptuelle Modell, das PowerPoint selbst verwendet. Fügen Sie Folien hinzu oder entfernen Sie sie, fügen Sie AutoShapes, Tabellen und Verbinder ein, formatieren Sie Text auf Zeichenebene mit fett, kursiv, Schriftgröße und Farbe, wenden Sie einfarbige oder Verlauffüllungen an und fügen Sie visuelle Effekte (Schatten, Leuchten, Unschärfe, Spiegelung) hinzu.
RAII‑Semantik stellt zuverlässige Ressourcenbereinigung sicher: Der Presentation-Destruktor gibt den gesamten internen Zustand automatisch frei. Unbekannte XML-Teile, die beim Laden gefunden werden, bleiben beim Speichern unverändert erhalten, sodass Round‑tripping niemals Inhalte zerstört, die die Bibliothek noch nicht versteht. Die Bibliothek erfordert einen C++20‑konformen Compiler. Für zusätzliche Funktionen siehe Aspose.Slides for C++ enterprise edition.
.pptx-Dateien über Presentation() oder Presentation(path).SlideCollection programmgesteuert mit add_empty_slide(), remove() und remove_at().ShapeType Geometrien über add_auto_shape() ein.add_connector() hinzu.NotesSlideManager.pres.comment_authors() iterieren und deren zugehörige Kommentare.Portion-Objekte über PortionFormat an.FillFormat und FillType.EffectFormat an.ParagraphFormat und set_alignment() fest.Aspose.Slides FOSS integriert sich über CMake FetchContent, sodass kein manuelles Herunterladen oder systemweite Installation erforderlich ist. Die Bibliothek wird aus dem Quellcode zusammen mit Ihrem Projekt gebaut.
Die API spiegelt das eigene Objektmodell von PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion) wider, sodass jeder, der mit dem PowerPoint‑Objektmodell vertraut ist, die Bibliothek sofort nutzen kann. Sie ist MIT‑lizenziert, Open‑Source auf GitHub und erfordert einen C++20‑konformen Compiler.
RAII stellt sicher, dass der Presentation Destruktor alle Ressourcen automatisch freigibt, wenn das Objekt den Gültigkeitsbereich verlässt. add_auto_shape() nimmt ein ShapeType Enum entgegen, dann x/y‑Position und Breite/Höhe in Punkten — die text_frame der Form bietet Zugriff zum Festlegen des Textinhalts.
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)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
int main() {
Aspose::Slides::Foss::Presentation prs;
auto& slide = prs.slides()[0];
// Add a rectangle AutoShape
auto& shape = slide.shapes().add_auto_shape(
Aspose::Slides::Foss::ShapeType::RECTANGLE,
50, 50, 400, 150
);
shape.text_frame()->set_text("Hello, Aspose.Slides!");
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
return 0;
}
```cmake
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)
Textformatierung funktioniert auf der Portion-Ebene — die kleinste Einheit einer Zeichenfolge. Öffnen Sie die gespeicherte Datei, navigieren Sie zum ersten Teil des ersten Absatzes und setzen Sie die Schriftarteigenschaften direkt. Die Formfüllung ist unabhängig: Stellen Sie den Fülltyp auf solid ein und weisen Sie eine Farbe zu.
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// Bold, 18pt text
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Solid background fill on the shape
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
```cpp
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// Bold, 18pt text
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// Solid background fill on the shape
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
Es ist eine kostenlose, MIT-lizenzierte C++-Bibliothek zum Erstellen, Lesen und Bearbeiten von PowerPoint .pptx-Präsentationen, ohne Microsoft Office zu benötigen.
.pptx ist das unterstützte Lese-/Schreibformat. Der Export nach PDF, HTML, SVG oder Bildern ist in dieser Ausgabe nicht verfügbar.
Nein. Aspose.Slides FOSS ist eine eigenständige C++-Bibliothek ohne Abhängigkeit von Microsoft Office, COM-Automatisierung oder irgendeinem proprietären Laufzeit.
Verwenden Sie CMake FetchContent, um die Bibliothek direkt von GitHub zu integrieren. Die Bibliothek erfordert einen C++20‑konformen Compiler.
Ja. Die Bibliothek unterstützt äußere Schatten-, Leucht-, Unschärfe- und Reflexionseffekte für jedes Formobjekt über die EffectFormat-API.
Ja. Der Presentation-Destruktor gibt den gesamten internen Zustand automatisch frei, sodass keine explizite Aufräumung erforderlich ist.
Nein. Unbekannte XML-Teile, die beim Laden gefunden werden, werden beim Speichern unverändert erhalten, sodass Inhalte, die die Bibliothek noch nicht versteht, niemals verloren gehen.
Die Bibliothek ist unter der MIT-Lizenz veröffentlicht und auf GitHub gehostet. Fehlerberichte und Pull‑Requests sind willkommen.