Einführung
Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx Dateien in nativer C++, ohne Abhängigkeit von Microsoft Office oder einer proprietären Laufzeit.
Die Bibliothek ist für Entwickler konzipiert, die Präsentationsdateien programmatisch erstellen oder manipulieren müssen: Automatisierung von Dia-Decks aus Daten, Extraktion von Text und Metadaten aus hochgeladenen PPTX-Dateien, Erstellung präsentierungsbasierter Berichtsleitungen oder Einbettung der Prädikatorgestaltung in Desktop- und Serveranwendungen. aspose_slides_foss ist mit CMake erstellt, es kompilliert und bereitstellt auf Windows, macOS und Linux.
Hauptmerkmale
- Vollständige Unterstützung von PPTX für den Hin- und Rückweg:Öffnen Sie jede .
.pptxDatei, ändern Sie den Inhalt und speichern Sie ihn zurück, ohne unbekannte XML-Teile zu verlieren, die die Bibliothek noch nicht versteht. - Management von Folienbildern: Hinzufügen, Entfernen und Iteration von Folien mit Hilfe der
prs.slides();Die Präsentation beginnt mit einer leeren Folie nach dem Aufbau einesPresentation. - Autoshapes, Tabellen und Anschlüsse:Einfügen von Formen über:
slide.shapes().add_auto_shape(), Tabellen über dieslide.shapes().add_table(), und visuelle Verbindungen zwischen Formen über dieslide.shapes().add_connector(). - Rich Text-Formatierung: Formatieren von Text auf Zeichenebene mit:
PortionFormat: Schriftgröße, fettfarbenen Text, Kursivschrift, Unterstriche und ARGB-Farbe über dieFillType::SOLIDund .ColorFormat. - Ausfüllungstypen: Anwendung finden.
FillType::SOLID,FillType::GRADIENT,FillType::PATTERN,oder ,FillType::PICTUREFüllungen in jede Form. - Visuelle Effekte: Außenschatten, Glanz, weiche Kante, Unbestimmtheit, Reflexion und inneren Schatten über die
shape.effect_format(). - 3D formatting: Bevel, Kamera, Lichtgerät, Material und Extrusionstiefe über die
shape.three_d_format(). - Anmerkungen des Redners: Anfügen Sie Text zu jeder Folie über die Website: WEB
notes_slide_manager().add_notes_slide(). - Kommentare mit Themen: Kommentare mit Autoren-Metadaten und Bildschirmposition hinzufügen.
- Eingebettete Bilder: Einbettung aus Dateiweg, Speicherpuffer oder Stream.
- Dokument-Eigenschaften: Lesen und Schreiben von Kern-, App- und benutzerdefinierten Eigenschaften.
Wie man anfängt
Die Bibliothek wird über CMake hinzugefügt. Ein C++20-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/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() {
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;
}
Die Presentation Der Zerstörer setzt alle internen Ressourcen automatisch frei, wenn er außerhalb des Umfangs ist.
Beispiel für die Formatierung von Text
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/nullable_bool.h>
#include <Aspose/Slides/Foss/paragraph.h>
#include <Aspose/Slides/Foss/paragraph_collection.h>
#include <Aspose/Slides/Foss/portion.h>
#include <Aspose/Slides/Foss/portion_collection.h>
#include <Aspose/Slides/Foss/portion_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>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
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);
return 0;
}
Aktuelle Einschränkungen
Folgende Bereiche sind in dieser Ausgabe nicht verfügbar:
- Diagramme, SmartArt und OLE-Objekte
- Animationen und Übergangsbilder
- Exportieren in PDF-, HTML- oder SVG-Formate
- Hyperlinks, Aktionseinstellungen, VBA-Makros und digitale Signaturen
Unbekannte XML-Teile, die während des Laufs auftreten, werden wörtlich bei der Speicherung erhalten. So können PPTX-Dateien, welche von anderen Tools erzeugt wurden, sicher hin und her abladen.