Wie man Präsentationen in .NET speichert
Aspose.Slides FOSS für .NET speichert Präsentationen ausschließlich im .pptx-Format mithilfe von prs.Save(path, SaveFormat.Pptx). Dieser Leitfaden behandelt das korrekte Speicherverfahren, das Speichern an einem anderen Pfad, das Speichern in einen Stream und häufige speicherbezogene Fehler.
Schritt-für-Schritt-Anleitung
Schritt 1: Installieren Sie das Paket
dotnet add package Aspose.Slides.FossSchritt 2: Präsentation öffnen oder erstellen
Verwenden Sie immer eine using‑Anweisung. Der save‑Aufruf muss erfolgen, bevor das Objekt freigegeben wird.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// Create new
using var prs = new Presentation();
prs.Save("new.pptx", SaveFormat.Pptx);// Open existing
using var prs = new Presentation("input.pptx");
prs.Save("output.pptx", SaveFormat.Pptx);Schritt 3: Nach allen Änderungen speichern
Platzieren Sie den Save() Aufruf, nachdem alle Änderungen abgeschlossen sind, bevor der using Scope endet.
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
var slide = prs.Slides[0];
var shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 50, 300, 100);
shape.AddTextFrame("Hello, World!");
prs.Save("output.pptx", SaveFormat.Pptx);Schritt 4: In einem anderen Pfad speichern
Geben Sie einen anderen Ausgabepfad an, um eine neue Datei zu erstellen, ohne das Original zu ändern:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);Die template.pptx Datei wird nicht geändert; customized.pptx wird erstellt (oder überschrieben, falls sie bereits existiert).
Schritt 5: In einen Stream speichern
Die Presentation.Save Methode akzeptiert auch ein Stream:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
using var prs = new Presentation();
using var stream = new MemoryStream();
prs.Save(stream, SaveFormat.Pptx);
byte[] pptxBytes = stream.ToArray();
Console.WriteLine($"Size: {pptxBytes.Length} bytes");Schritt 6: Ausgabe überprüfen
Nachdem Sie die Datei gespeichert haben, prüfen Sie, ob sie existiert:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Unterstütztes Speicherformat
| Format | Enum-Wert | Unterstützt |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Ja |
| N/A | Nein | |
| HTML | N/A | Nein |
| SVG | N/A | Nein |
| PNG / JPEG | N/A | Nein |
| ODP (OpenDocument) | N/A | Nein |
Nur PPTX wird unterstützt. Der Formatparameter wird derzeit ignoriert; alle Präsentationen werden als PPTX gespeichert, unabhängig vom angegebenen SaveFormat.
Allgemeine Probleme und Lösungen
IOException: The process cannot access the file
Die Ausgabedatei ist in einer anderen Anwendung geöffnet (z. B. hat PowerPoint die Datei geöffnet). Schließen Sie die Datei in anderen Anwendungen, bevor Sie speichern.
Datei wird erstellt, ist aber leer oder beschädigt
Stellen Sie sicher, dass prs.Save() aufgerufen wird, bevor das Objekt freigegeben wird. Nachdem Dispose() ausgeführt wurde, führen nachfolgende Aufrufe zu einem Fehlschlag oder erzeugen fehlerhafte Ausgaben.
Unerwartetes Ausgabeformat beim Speichern
Das Übergeben eines beliebigen SaveFormat‑Werts, der nicht SaveFormat.Pptx ist, löst keine Ausnahme aus — der Formatparameter wird stillschweigend ignoriert und die Datei wird immer als PPTX gespeichert. Es gibt keinen NotSupportedException für einen nicht erkannten Formatwert.
Häufig gestellte Fragen
Kann ich in dieselbe Datei speichern, die ich geöffnet habe?
Ja. Das Speichern im selben Pfad überschreibt die Originaldatei:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalBehält das Speichern Inhalte bei, die ich nicht geändert habe?
Ja. Unbekannte XML‑Teile aus der Originaldatei werden unverändert beibehalten. Die Bibliothek serialisiert nur die Teile des Dokumentmodells, die sie versteht, und lässt jedes XML, das sie nicht erkennt, unverändert durch.