Low-Code-Präsentationsoperationen in C++
Übersicht
Der Namensraum Aspose::Slides::LowCode stellt statische Hilfsklassen für gängige Präsentationsvorgänge bereit. Diese Helfer kapseln häufig genutzte Objektmodell‑Arbeitsabläufe in fokussierten Methoden, sodass Sie Dateien konvertieren oder zusammenführen, Präsentationselemente verarbeiten, Shapes sammeln und ungenutzten Inhalt mit weniger Code entfernen können.
Low‑code‑Helfer sind am nützlichsten, wenn der Vorgang auf eine gesamte Datei oder Präsentation angewendet wird und der Standard‑Workflow Ihren Anforderungen entspricht. Verwenden Sie das vollständige Aspose.Slides object model, wenn Sie eine feinkörnige Kontrolle über einzelne Folien, Master, Layouts, Shapes, Export‑Einstellungen oder Beziehungen zwischen Präsentationselementen benötigen.
Die folgende Tabelle fasst die verfügbaren Helfer zusammen:
| Helfer | Verwendung |
|---|---|
| Convert | Konvertieren einer Präsentation in ein anderes Format mit einem direkten Datei‑zu‑Datei‑Aufruf. |
| Merger | Kombinieren vollständiger Präsentationsdateien desselben Formats. |
| ForEach | Ausführen einer Aktion für jede Folie, jedes Shape, jeden Absatz oder Textabschnitt. |
| Collect | Abrufen von Shapes aus der gesamten Präsentation für wiederholte Verarbeitung oder Analyse. |
| Compress | Entfernen ungenutzter Master und Layouts sowie Reduzieren eingebetteter Schriftartdaten. |
Präsentation konvertieren
Verwenden Sie Convert::AutoByExtension, wenn die Dateierweiterung des Ausgabedokuments ausreicht, um das Exportformat auszuwählen. Die Methode öffnet die Quellpräsentation, ermittelt das erforderliche Format aus dem Ausgabepfad und schreibt das Ergebnis.
#include <LowCode/Convert.h>
using namespace Aspose::Slides::LowCode;
Convert::AutoByExtension(u"input.pptx", u"output.pdf");
Die Convert‑Klasse bietet außerdem dedizierte Methoden für PDF, SVG, JPEG, PNG und TIFF. Verwenden Sie das vollständige Objektmodell, wenn Sie die Präsentation vor dem Export inspizieren oder ändern oder eine Export‑Option konfigurieren müssen, die vom jeweiligen Helfer nicht bereitgestellt wird. Siehe Convert Presentation für format‑spezifische Workflows und Optionen.
Präsentationen zusammenführen
Verwenden Sie Merger::Process, um komplette Präsentationsdateien mit einem Aufruf zu kombinieren. Die Eingabedateien müssen dasselbe Dateiformat besitzen.
#include <LowCode/Merger.h>
#include <system/array.h>
#include <system/string.h>
using namespace Aspose::Slides::LowCode;
auto inputFiles = System::MakeArray<System::String>({u"part-1.pptx", u"part-2.pptx"});
Merger::Process(inputFiles, u"merged.pptx");
Der Helfer ist geeignet, wenn alle Folien zu einem Ergebnis hinzugefügt werden sollen, ohne sie einzeln auszuwählen oder neu zuzuordnen. Verwenden Sie das vollständige Objektmodell, wenn Sie ausgewählte Folien zusammenführen, einen Ziel‑Master oder -Layout anwenden, Abschnitte explizit erhalten oder unterschiedliche Foliengrößen abgleichen müssen. Siehe Merge Presentations für diese Szenarien.
Durch Präsentationselemente iterieren
Die ForEach‑Klasse ruft einen Rückruf für jeden angeforderten Typ von Präsentationselement auf. Sie vermeidet verschachtelte Schleifen über Sammlungen und eignet sich für prüfungen- oder formatierungsänderungen auf Präsentationsebene.
Das folgende Beispiel verwendet ForEach::Slide, ForEach::Shape, ForEach::Paragraph und ForEach::Portion, um die entsprechenden Elemente zu inspizieren:
#include <DOM/BaseSlide.h>
#include <DOM/Paragraph.h>
#include <DOM/Portion.h>
#include <DOM/Presentation.h>
#include <DOM/Shape.h>
#include <DOM/Slide.h>
#include <LowCode/ForEach.h>
#include <system/console.h>
#include <system/shared_ptr.h>
#include <functional>
using namespace Aspose::Slides;
using namespace Aspose::Slides::LowCode;
auto presentation = System::MakeObject<Presentation>(u"input.pptx");
auto slideCallback = std::function<void(System::SharedPtr<Slide>, int32_t)>([](System::SharedPtr<Slide> slide, int32_t index)
{
System::Console::WriteLine(u"Slide {0}: {1} shapes", index, slide->get_Shapes()->get_Count());
});
ForEach::Slide(presentation, slideCallback);
auto shapeCallback = std::function<void(System::SharedPtr<Shape>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Shape> shape, System::SharedPtr<BaseSlide> slide, int32_t index)
{
System::Console::WriteLine(u"Shape {0}: {1}", index, shape->get_Name());
});
ForEach::Shape(presentation, shapeCallback);
auto paragraphCallback = std::function<void(System::SharedPtr<Paragraph>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Paragraph> paragraph, System::SharedPtr<BaseSlide> slide, int32_t index)
{
System::Console::WriteLine(u"Paragraph {0}: {1}", index, paragraph->get_Text());
});
ForEach::Paragraph(presentation, paragraphCallback);
auto portionCallback = std::function<void(System::SharedPtr<Portion>, System::SharedPtr<Paragraph>, System::SharedPtr<BaseSlide>, int32_t)>([](System::SharedPtr<Portion> portion, System::SharedPtr<Paragraph> paragraph, System::SharedPtr<BaseSlide> slide, int32_t index)
{
System::Console::WriteLine(u"Portion {0}: {1}", index, portion->get_Text());
});
ForEach::Portion(presentation, portionCallback);
Standardmäßig umfasst die traversal über Shapes und Text die normalen, Master‑ und Layout‑Folien. Überladungen mit einem includeNotes‑Parameter können zusätzlich Notizfolien verarbeiten. Verwenden Sie direkte Schleifen, wenn die Traversal‑Reihenfolge, ein vorzeitiger Abbruch, Filterung vor dem Rückruf oder eine detaillierte Eltern‑Kind‑Steuerung wichtig sind.
Shapes sammeln
Verwenden Sie Collect::Shapes, wenn Sie eine Sammlung aller Shapes in einer Präsentation benötigen, anstatt eines Rückrufs für jedes einzelne Shape. Dies ist nützlich, wenn dieselbe Menge mehrfach gefiltert, gezählt oder verarbeitet werden soll.
#include <DOM/Presentation.h>
#include <DOM/Shape.h>
#include <LowCode/Collect.h>
#include <system/console.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::LowCode;
auto presentation = System::MakeObject<Presentation>(u"input.pptx");
auto shapes = Collect::Shapes(presentation);
for (const auto& shape : shapes)
{
System::Console::WriteLine(shape->get_Name());
}
Verwenden Sie stattdessen ForEach::Shape, wenn jedes Shape sofort verarbeitet werden kann und Sie das gesammelte Ergebnis nicht behalten müssen.
Präsentationsinhalt komprimieren
Die Compress‑Klasse kann ungenutzte Strukturelemente entfernen und eingebettete Schriftartdaten reduzieren:
- Compress::RemoveUnusedLayoutSlides entfernt Layout‑Folien, auf die keine normale Folie verweist.
- Compress::RemoveUnusedMasterSlides entfernt Master‑Folien, die nicht mehr verwendet werden.
- Compress::CompressEmbeddedFonts entfernt ungenutzte Zeichen aus eingebetteten Schriftarten.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <LowCode/Compress.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace Aspose::Slides::LowCode;
auto presentation = System::MakeObject<Presentation>(u"input.pptx");
Compress::RemoveUnusedLayoutSlides(presentation);
Compress::RemoveUnusedMasterSlides(presentation);
Compress::CompressEmbeddedFonts(presentation);
presentation->Save(u"compressed.pptx", SaveFormat::Pptx);
Entfernen Sie zuerst ungenutzte Layouts, bevor Sie ungenutzte Master entfernen, damit ein Master, der nach der Layout‑Aufräumung unreferenziert wird, ebenfalls gelöscht werden kann. Speichern Sie die optimierte Präsentation in einer neuen Datei, falls Sie die ursprünglichen Master, Layouts oder die vollständigen eingebetteten Schriftartdaten später benötigen. Weitere Details finden Sie unter Slide Master und Embedded Font.
FAQ
Wann sollte ich die Low‑Code‑API anstelle des vollständigen Objektmodells verwenden?
Verwenden Sie Low‑Code‑Helfer, wenn ein Standardvorgang auf eine komplette Datei oder Präsentation zutrifft und keine detaillierte Kontrolle über einzelne Elemente erfordert. Verwenden Sie das vollständige Objektmodell, wenn Sie bestimmte Folien auswählen, Master‑ und Layout‑Beziehungen steuern, den Zwischenzustand inspizieren oder Verhalten konfigurieren müssen, das der Helfer nicht bereitstellt.
Kann Merger Präsentationen in unterschiedlichen Dateiformaten kombinieren?
Nein. Merger::Process erfordert Eingabedateien im selben Format. Konvertieren Sie die Eingabedateien zunächst in ein gemeinsames Format, zum Beispiel mit Convert::AutoByExtension, und führen Sie anschließend die konvertierten Dateien zusammen.
Verarbeitet ForEach Master‑, Layout‑ und Notizfolien?
ForEach::Slide iteriert über normale Präsentationsfolien. Präsentationsweite ForEach::Shape, ForEach::Paragraph und ForEach::Portion umfassen standardmäßig normale, Master‑ und Layout‑Folien. Verwenden Sie deren Überladungen mit includeNotes = true, um Notizfolien mit einzubeziehen.
Was ist der Unterschied zwischen ForEach::Shape und Collect::Shapes?
Verwenden Sie ForEach::Shape, um jedes Shape sofort über einen Rückruf zu verarbeiten. Verwenden Sie Collect::Shapes, wenn Sie ein aufzählbares Ergebnis benötigen, das behalten, gefiltert, gezählt oder mehrfach durchlaufen werden kann.
Macht Compress immer die Präsentationsdatei kleiner?
Nicht unbedingt. Das Ergebnis hängt davon ab, ob die Präsentation ungenutzte Layouts, ungenutzte Master oder eingebettete Schriftarten mit ungenutzten Zeichen enthält. Wenn keine dieser Bedingungen vorliegt, reduzieren die entsprechenden Compress‑Operationen möglicherweise nicht die Dateigröße.
Werden Änderungen, die durch ForEach oder Compress vorgenommen wurden, automatisch gespeichert?
Nein. Diese Helfer arbeiten mit dem geladenen Presentation‑Objekt im Speicher. Nachdem Sie Elemente in einem ForEach‑Rückruf geändert oder Compress ausgeführt haben, rufen Sie Presentation::Save auf, um das Ergebnis zu schreiben.