Hoe presentaties opslaan in .NET
Aspose.Slides FOSS for .NET slaat presentaties uitsluitend op in .pptx‑formaat met behulp van prs.Save(path, SaveFormat.Pptx). Deze gids behandelt het correcte opslaan‑patroon, opslaan naar een ander pad, opslaan naar een stream en veelvoorkomende fouten gerelateerd aan opslaan.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
dotnet add package Aspose.Slides.FossStap 2: Open of maak een presentatie
Gebruik altijd een using statement. De save‑call moet plaatsvinden voordat het object wordt disposed.
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);Stap 3: Opslaan na alle wijzigingen
Plaats de Save()‑aanroep nadat alle wijzigingen zijn voltooid, voordat de using‑scope eindigt.
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);Stap 4: Opslaan naar een ander pad
Geef een ander uitvoerpad op om een nieuw bestand te maken zonder het origineel te wijzigen:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);Het template.pptx‑bestand wordt niet gewijzigd; customized.pptx wordt aangemaakt (of overschreven als het al bestaat).
Stap 5: Opslaan naar een stream
De Presentation.Save methode accepteert ook een 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");Stap 6: Verifieer de uitvoer
Na het opslaan naar een bestand, controleer of het bestaat:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Ondersteunde opslagindeling
| Formaat | Enum-waarde | Ondersteund |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Ja |
| N/A | Nee | |
| HTML | N/A | Nee |
| SVG | N/A | Nee |
| PNG / JPEG | N/A | Nee |
| ODP (OpenDocument) | N/A | Nee |
Alleen PPTX wordt ondersteund. De format-parameter wordt momenteel genegeerd; alle presentaties worden opgeslagen als PPTX, ongeacht het opgegeven SaveFormat.
Veelvoorkomende problemen en oplossingen
IOException: The process cannot access the file
Het uitvoerbestand is geopend in een andere toepassing (bijv. PowerPoint heeft het bestand geopend). Sluit het bestand in andere toepassingen voordat u opslaat.
Bestand is aangemaakt maar lijkt leeg of beschadigd
Zorg ervoor dat prs.Save() wordt aangeroepen voordat het object wordt vrijgegeven. Nadat Dispose() wordt uitgevoerd, zullen latere aanroepen mislukken of corrupte output produceren.
Onverwacht uitvoerformaat bij opslaan
Het doorgeven van een SaveFormat-waarde anders dan SaveFormat.Pptx veroorzaakt geen uitzondering — de formatparameter wordt stilzwijgend genegeerd en het bestand wordt altijd opgeslagen als PPTX. Er is geen NotSupportedException voor een niet‑herkende formatwaarde.
Veelgestelde vragen
Kan ik opslaan naar hetzelfde bestand dat ik heb geopend?
Ja. Opslaan naar hetzelfde pad overschrijft het originele bestand:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalBehoudt opslaan de inhoud die ik niet heb gewijzigd?
Ja. Onbekende XML‑gedeelten uit het oorspronkelijke bestand worden letterlijk bewaard. De bibliotheek serialiseert alleen de delen van het documentmodel die het begrijpt, en laat elke XML die het niet herkent onveranderd door.