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 . .pptx Datei, ä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 eines Presentation.
  • Autoshapes, Tabellen und Anschlüsse:Einfügen von Formen über: slide.shapes().add_auto_shape(), Tabellen über die slide.shapes().add_table(), und visuelle Verbindungen zwischen Formen über die slide.shapes().add_connector().
  • Rich Text-Formatierung: Formatieren von Text auf Zeichenebene mit: PortionFormat: Schriftgröße, fettfarbenen Text, Kursivschrift, Unterstriche und ARGB-Farbe über die FillType::SOLID und . ColorFormat.
  • Ausfüllungstypen: Anwendung finden. FillType::SOLID, FillType::GRADIENT, FillType::PATTERN,oder , FillType::PICTURE Fü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.

Siehe auch: