Cómo guardar presentaciones en .NET
Aspose.Slides FOSS for .NET guarda presentaciones exclusivamente en formato .pptx usando prs.Save(path, SaveFormat.Pptx). Esta guía cubre el patrón de guardado correcto, guardar en una ruta diferente, guardar en un flujo y errores comunes relacionados con el guardado.
Guía paso a paso
Paso 1: Instalar el paquete
dotnet add package Aspose.Slides.FossPaso 2: Abrir o crear una presentación
Siempre use una declaración using. La llamada a guardar debe ocurrir antes de que el objeto sea destruido.
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);Paso 3: Guardar después de todas las modificaciones
Coloque la llamada Save() después de que se completen todas las modificaciones, antes de que finalice el alcance using.
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);Paso 4: Guardar en una ruta diferente
Proporcione una ruta de salida diferente para crear un nuevo archivo sin modificar el original:
using var prs = new Presentation("template.pptx");
// modify ...
prs.Save("customized.pptx", SaveFormat.Pptx);El archivo template.pptx no se modifica; customized.pptx se crea (o se sobrescribe si ya existe).
Paso 5: Guardar en un flujo
El método Presentation.Save también acepta 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");Paso 6: Verificar la salida
Después de guardar en un archivo, verifica que exista:
var info = new FileInfo("output.pptx");
Console.WriteLine($"Saved: {info.Exists}, size: {info.Length} bytes");Formato de guardado compatible
| Formato | Valor de Enum | Compatible |
|---|---|---|
| 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 |
Solo se admite PPTX. El parámetro de formato se ignora actualmente; todas las presentaciones se guardan como PPTX sin importar el SaveFormat especificado.
Problemas comunes y soluciones
IOException: The process cannot access the file
El archivo de salida está abierto en otra aplicación (p. ej., PowerPoint tiene el archivo abierto). Cierre el archivo en otras aplicaciones antes de guardar.
El archivo se crea pero aparece vacío o corrupto
Asegúrese de que prs.Save() se llame antes de que el objeto sea eliminado. Después de que Dispose() se ejecute, las llamadas posteriores fallarán o producirán una salida corrupta.
Formato de salida inesperado al guardar
Pasar cualquier valor SaveFormat distinto de SaveFormat.Pptx no lanza una excepción — el parámetro de formato se ignora silenciosamente y el archivo siempre se guarda como PPTX. No hay NotSupportedException para un valor de formato no reconocido.
Preguntas frecuentes
¿Puedo guardar en el mismo archivo que abrí?
Sí. Guardar en la misma ruta sobrescribe el archivo original:
using var prs = new Presentation("deck.pptx");
// modify ...
prs.Save("deck.pptx", SaveFormat.Pptx); // overwrites original¿Guardar preserva el contenido que no he modificado?
Sí. Las partes XML desconocidas del archivo original se conservan literalmente. La biblioteca solo serializa las partes del modelo de documento que entiende y pasa sin cambios cualquier XML que no reconoce.