Präsentationen in C++ speichern
Übersicht
Präsentationen in C++ öffnen beschreibt, wie die Presentation Klasse verwendet wird, um eine Präsentation zu öffnen. Dieser Artikel erklärt, wie man Präsentationen erstellt und speichert. Die Presentation Klasse enthält den Inhalt einer Präsentation. Egal, ob Sie eine Präsentation von Grund auf neu erstellen oder eine vorhandene ändern, Sie möchten sie am Ende speichern. Mit Aspose.Slides für C++ können Sie in eine Datei oder Stream speichern. Dieser Artikel erläutert die verschiedenen Möglichkeiten, eine Präsentation zu speichern.
Präsentationen in Dateien speichern
Speichern Sie eine Präsentation in einer Datei, indem Sie die Save-Methode der Presentation Klasse aufrufen. Übergeben Sie den Dateinamen und das Speicherformat an die Methode. Das folgende Beispiel zeigt, wie man mit Aspose.Slides eine Präsentation speichert.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt.
auto presentation = MakeObject<Presentation>();
// Führen Sie hier einige Arbeiten aus...
// Speichern Sie die Präsentation in einer Datei.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();
Präsentationen in Streams speichern
Sie können eine Präsentation in einen Stream speichern, indem Sie einen Ausgabestream an die Save-Methode der Presentation Klasse übergeben. Eine Präsentation kann in viele Stream‑Typen geschrieben werden. Im folgenden Beispiel erstellen wir eine neue Präsentation und speichern sie in einen Dateistream.
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/io/file_mode.h>
#include <system/io/file_stream.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
using namespace System::IO;
// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt.
auto presentation = MakeObject<Presentation>();
auto fileStream = MakeObject<FileStream>(u"Output.pptx", FileMode::Create);
// Speichern Sie die Präsentation im Stream.
presentation->Save(fileStream, SaveFormat::Pptx);
presentation->Dispose();
fileStream->Close();
Präsentationen mit vordefiniertem Ansichtstyp speichern
Aspose.Slides ermöglicht es Ihnen, die anfängliche Ansicht festzulegen, die PowerPoint beim Öffnen der erzeugten Präsentation verwendet, über die Klasse ViewProperties. Verwenden Sie die Methode set_LastView mit einem Wert aus der Aufzählung ViewType.
#include <DOM/IViewProperties.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <ViewType.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto presentation = MakeObject<Presentation>();
presentation->get_ViewProperties()->set_LastView(ViewType::SlideMasterView);
presentation->Save(u"SlideMasterView.pptx", SaveFormat::Pptx);
presentation->Dispose();
Präsentationen im Strict Office Open XML‑Format speichern
Aspose.Slides ermöglicht das Speichern einer Präsentation im Strict Office Open XML‑Format. Verwenden Sie die Klasse PptxOptions und setzen Sie beim Speichern deren Conformance‑Eigenschaft. Wenn Sie Conformance.Iso29500_2008_Strict festlegen, wird die Ausgabedatei im Strict Office Open XML‑Format gespeichert.
Das folgende Beispiel erstellt eine Präsentation und speichert sie im Strict Office Open XML‑Format.
#include <DOM/Presentation.h>
#include <Export/Conformance.h>
#include <Export/PptxOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto options = MakeObject<PptxOptions>();
options->set_Conformance(Conformance::Iso29500_2008_Strict);
// Instanziieren Sie die Presentation-Klasse, die eine Präsentationsdatei darstellt.
auto presentation = MakeObject<Presentation>();
// Speichern Sie die Präsentation im Strict Office Open XML-Format.
presentation->Save(u"StrictOfficeOpenXml.pptx", SaveFormat::Pptx, options);
presentation->Dispose();
Präsentationen im Office Open XML‑Format im Zip64‑Modus speichern
Eine Office Open XML‑Datei ist ein ZIP‑Archiv, das Grenzen von 4 GB (2^32 Bytes) für die unkomprimierte Größe jeder Datei, die komprimierte Größe jeder Datei und die Gesamtgröße des Archivs festlegt und das Archiv auf 65 535 (2^16‑1) Dateien begrenzt. ZIP64‑Formatserweiterungen erhöhen diese Grenzen auf 2^64.
Die Methode IPptxOptions::set_Zip64Mode ermöglicht die Auswahl, wann ZIP64‑Formatserweiterungen beim Speichern einer Office Open XML‑Datei verwendet werden.
Diese Methode kann mit den folgenden Modi verwendet werden:
IfNecessaryverwendet ZIP64‑Formatserweiterungen nur, wenn die Präsentation die oben genannten Beschränkungen überschreitet. Dies ist der Standardmodus.Neververwendet ZIP64‑Formatserweiterungen nie.Alwaysverwendet ZIP64‑Formatserweiterungen immer.
Der folgende Code demonstriert, wie man eine Präsentation als PPTX‑Datei mit aktivierten ZIP64‑Formatserweiterungen speichert:
#include <DOM/Presentation.h>
#include <Export/PptxOptions.h>
#include <Export/SaveFormat.h>
#include <Export/Zip64Mode.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_Zip64Mode(Zip64Mode::Always);
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
presentation->Save(u"OutputZip64.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();
NOTE
Wenn Sie mitZip64Mode.Never speichern, wird eine PptxException ausgelöst, wenn die Präsentation nicht im ZIP32‑Format gespeichert werden kann.
Präsentationen im Office Open XML‑Format mit Komprimierungsstufen speichern
Bei großen Präsentationen können Sie die Komprimierungsstufe anpassen, um Größe und Verarbeitungszeit auszubalancieren. Je nach Anforderungen bevorzugen Sie möglicherweise schnellere Verarbeitung oder kleinere Ausgabedateien.
Aspose.Slides bietet die Methode PptxOptions::set_CompressionLevel, mit der Sie die beim Speichern einer Präsentation im Office Open XML‑Format zu verwendende Komprimierungsstufe festlegen können.
Die folgenden Komprimierungsstufen stehen zur Verfügung:
- None: Keine Komprimierung wird angewendet. Dateien werden unverändert gespeichert.
- Level1: Schnellste Komprimierung mit dem niedrigsten Komprimierungsverhältnis.
- Level2: Schnellere Komprimierung mit etwas besserem Verhältnis als Level1.
- Level3: Bessere Komprimierung als Level2 bei moderatem Einfluss auf die Verarbeitungszeit.
- Level4: Bessere Komprimierung als Level3.
- Level5: Verbesserte Komprimierung gegenüber Level4 mit zusätzlicher Verarbeitungszeit.
- Level6: Standardkomprimierung, die ein gutes Gleichgewicht zwischen Verarbeitungsgeschwindigkeit und Dateigröße bietet. Dies ist die Standardkomprimierungsstufe.
- Level7: Bessere Komprimierung als Level6 bei langsamerer Verarbeitung.
- Level8: Bessere Komprimierung als Level7.
- Level9: Maximale Komprimierung. Produziert die kleinste Dateigröße auf Kosten der längsten Verarbeitungszeit.
Das folgende Beispiel demonstriert, wie man eine Präsentation als PPTX‑Datei ohne Komprimierung speichert:
#include <DOM/Presentation.h>
#include <Export/CompressionLevel.h>
#include <Export/PptxOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using Aspose::Slides::Export::CompressionLevel;
using Aspose::Slides::Export::PptxOptions;
using Aspose::Slides::Export::SaveFormat;
using Aspose::Slides::Presentation;
using System::MakeObject;
auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_CompressionLevel(CompressionLevel::None);
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
presentation->Save(u"Sample-out.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();
Dieses Beispiel zeigt, wie man eine Präsentation als PPTX‑Datei mit maximaler Komprimierung speichert:
#include <DOM/Presentation.h>
#include <Export/CompressionLevel.h>
#include <Export/PptxOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using Aspose::Slides::Export::CompressionLevel;
using Aspose::Slides::Export::PptxOptions;
using Aspose::Slides::Export::SaveFormat;
using Aspose::Slides::Presentation;
using System::MakeObject;
auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_CompressionLevel(CompressionLevel::Level9);
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
presentation->Save(u"Sample-level9.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();
Präsentationen ohne Aktualisierung des Thumbnails speichern
Die Methode PptxOptions::set_RefreshThumbnail steuert die Thumbnail‑Erstellung beim Speichern einer Präsentation als PPTX:
- Wenn sie auf
truegesetzt ist, wird das Thumbnail während des Speichervorgangs aktualisiert. Dies ist der Standard. - Wenn sie auf
falsegesetzt ist, bleibt das aktuelle Thumbnail erhalten. Hat die Präsentation kein Thumbnail, wird keines erzeugt.
Im nachfolgenden Code wird die Präsentation als PPTX gespeichert, ohne ihr Thumbnail zu aktualisieren.
#include <DOM/Presentation.h>
#include <Export/PptxOptions.h>
#include <Export/SaveFormat.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto pptxOptions = MakeObject<PptxOptions>();
pptxOptions->set_RefreshThumbnail(false);
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
presentation->Save(u"Output.pptx", SaveFormat::Pptx, pptxOptions);
presentation->Dispose();
Info
Diese Option hilft, die zum Speichern einer Präsentation im PPTX‑Format benötigte Zeit zu reduzieren.Speicherfortschritt in Prozent erhalten
Das Interface IProgressCallback wird über die Methode set_ProgressCallback verwendet, die vom ISaveOptions Interface und der abstrakten Klasse SaveOptions bereitgestellt wird. Weisen Sie mit set_ProgressCallback eine Implementierung von IProgressCallback zu, um Fortschritts‑Updates beim Speichern als Prozentsatz zu erhalten.
Die folgenden Code‑Snippets zeigen, wie IProgressCallback verwendet wird.
#include <IProgressCallback.h>
#include <system/console.h>
using namespace Aspose::Slides;
using namespace System;
class ExportProgressHandler : public IProgressCallback
{
public:
void Reporting(double progressValue) override
{
// Verwenden Sie hier den prozentualen Fortschrittswert.
int progress = static_cast<int>(progressValue);
Console::WriteLine(u"{0}% of the file has been converted.", progress);
}
};
#include <DOM/Presentation.h>
#include <Export/PdfOptions.h>
#include <Export/SaveFormat.h>
#include <IProgressCallback.h>
#include <system/console.h>
#include <system/smart_ptr.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
// Die oben definierte Fortschritts-Callback-Klasse.
class ExportProgressHandler : public IProgressCallback
{
public:
void Reporting(double progressValue) override
{
int progress = static_cast<int>(progressValue);
Console::WriteLine(u"{0}% of the file has been converted.", progress);
}
};
auto saveOptions = MakeObject<PdfOptions>();
saveOptions->set_ProgressCallback(MakeObject<ExportProgressHandler>());
auto presentation = MakeObject<Presentation>(u"Sample.pptx");
presentation->Save(u"Output.pdf", SaveFormat::Pdf, saveOptions);
presentation->Dispose();
Info
Aspose hat eine kostenlose PowerPoint‑Splitter‑App basierend auf seiner eigenen API entwickelt. Die App ermöglicht es, eine Präsentation in mehrere Dateien zu teilen, indem ausgewählte Folien als neue PPTX‑ oder PPT‑Dateien gespeichert werden.FAQ
Unterstützt „schnelles Speichern“ (inkrementelles Speichern), sodass nur Änderungen geschrieben werden?
Nein. Beim Speichern wird jedes Mal die komplette Zieldatei erzeugt; inkrementelles „schnelles Speichern“ wird nicht unterstützt.
Ist es threadsicher, dieselbe Presentation‑Instanz aus mehreren Threads zu speichern?
Nein. Eine Presentation Instanz ist nicht threadsicher; speichern Sie sie aus einem einzelnen Thread.
Was passiert mit Hyperlinks und extern verknüpften Dateien beim Speichern?
Hyperlinks bleiben erhalten. Extern verknüpfte Dateien (z. B. Videos über relative Pfade) werden nicht automatisch kopiert – stellen Sie sicher, dass die referenzierten Pfade weiterhin zugänglich sind.
Kann ich Dokument‑Metadaten (Autor, Titel, Unternehmen, Datum) festlegen/speichern?
Ja. Standard‑Dokumenteneigenschaften werden unterstützt und beim Speichern in die Datei geschrieben.