Come salvare le presentazioni in .NET
Aspose.Slides FOSS for .NET salva le presentazioni esclusivamente nel formato .pptx usando prs.Save(path, SaveFormat.Pptx). Questa guida copre il modello di salvataggio corretto, il salvataggio in un percorso diverso, il salvataggio in uno stream e gli errori comuni relativi al salvataggio.
Guida passo-passo
Passo 1: Installa il pacchetto
dotnet add package Aspose.Slides.FossPasso 2: Apri o Crea una Presentazione
Usa sempre una dichiarazione using. La chiamata di salvataggio deve avvenire prima che l’oggetto venga eliminato.
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);Passo 3: Salva dopo tutte le modifiche
Posiziona la chiamata Save() dopo che tutte le modifiche sono complete, prima che l’ambito using termini.
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);Passo 4: Salva in un percorso diverso
Specifica un percorso di output diverso per creare un nuovo file senza modificare l’originale:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);Il file template.pptx non viene modificato; customized.pptx viene creato (o sovrascritto se esiste già).
Passo 5: Salva su uno stream
Il metodo Presentation.Save accetta anche un 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");Passo 6: Verifica l’output
Dopo aver salvato su un file, verifica che esista:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Formato di salvataggio supportato
| Formato | Valore Enum | Supportato |
|---|---|---|
| PPTX (Office Open XML) | SaveFormat.Pptx | Sì |
| N/A | No | |
| HTML | N/A | No |
| SVG | N/A | No |
| PNG / JPEG | N/A | No |
| ODP (OpenDocument) | N/A | No |
È supportato solo PPTX. Il parametro format è attualmente ignorato; tutte le presentazioni vengono salvate come PPTX indipendentemente dal SaveFormat specificato.
Problemi comuni e soluzioni
IOException: The process cannot access the file
Il file di output è aperto in un’altra applicazione (ad esempio, PowerPoint ha il file aperto). Chiudi il file nelle altre applicazioni prima di salvare.
Il file viene creato ma appare vuoto o corrotto
Assicurati che prs.Save() venga chiamato prima che l’oggetto venga eliminato. Dopo che Dispose() viene eseguito, le chiamate successive falliranno o produrranno output corrotti.
Formato di output imprevisto durante il salvataggio
Passare qualsiasi valore SaveFormat diverso da SaveFormat.Pptx non genera un’eccezione — il parametro format viene silenziosamente ignorato e il file viene sempre salvato come PPTX. Non esiste NotSupportedException per un valore di formato non riconosciuto.
Domande frequenti
Posso salvare nello stesso file che ho aperto?
Sì. Il salvataggio nello stesso percorso sovrascrive il file originale:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites originalIl salvataggio preserva il contenuto che non ho modificato?
Sì. Le parti XML sconosciute del file originale vengono preservate alla lettera. La libreria serializza solo le parti del modello di documento che comprende e passa attraverso qualsiasi XML non riconosciuto.