Cómo cargar presentaciones en .NET

Cómo cargar presentaciones en .NET

Aspose.Slides FOSS for .NET lets you open any .pptx archivo, inspecciona su contenido y guárdalo de nuevo en PPTX o extrae datos de él. Esta guía cubre la apertura de un archivo, la iteración de diapositivas, la lectura del texto de las formas y el guardado de ida y vuelta.

Guía paso a paso

Paso 1: Instalar el paquete

dotnet add package Aspose.Slides.Foss

Paso 2: Abrir una presentación existente

Pasa la ruta del archivo a new Presentation(). Usa un using sentencia para asegurar la limpieza.

using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;

using var prs = new Presentation("input.pptx");
Console.WriteLine($"Slide count: {prs.Slides.Count}");
prs.Save("output.pptx", SaveFormat.Pptx);

Las partes XML desconocidas en el archivo fuente se conservan literalmente: la biblioteca nunca elimina contenido que aún no entiende.


Paso 3: Inspeccionar diapositivas

Itere sobre todas las diapositivas e imprima su índice:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
for (int i = 0; i < prs.Slides.Count; i++)
{
    var slide = prs.Slides[i];
    int shapeCount = slide.Shapes.Count;
    Console.WriteLine($"Slide {i}: {shapeCount} shapes");
}

Paso 4: Leer el texto de la forma

Itera sobre las formas y lee el texto de las formas que tienen un TextFrame:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
foreach (var slide in prs.Slides)
{
    foreach (var shape in slide.Shapes)
    {
        if (shape is IAutoShape autoShape && autoShape.TextFrame != null)
        {
            string text = autoShape.TextFrame.Text;
            if (!string.IsNullOrWhiteSpace(text))
                Console.WriteLine($"  Shape text: {text}");
        }
    }
}

Paso 5: Leer propiedades del documento

Accede a las propiedades principales del documento desde prs.DocumentProperties:

using Aspose.Slides.Foss;

using var prs = new Presentation("deck.pptx");
var props = prs.DocumentProperties;
Console.WriteLine($"Title:   {props.Title}");
Console.WriteLine($"Author:  {props.Author}");
Console.WriteLine($"Subject: {props.Subject}");

Paso 6: Guardado de ida y vuelta

Después de inspeccionar o modificar la presentación, guárdela de nuevo en PPTX:

prs.Save("output.pptx", SaveFormat.Pptx);

Guardar en una ruta diferente crea un archivo nuevo. Guardar en la misma ruta sobrescribe el original.


Problemas comunes y soluciones

FileNotFoundException

Verifica que la ruta al .pptx archivo sea correcta respecto al directorio de trabajo. Usa Path.Combine para una construcción robusta de rutas:

string path = Path.Combine(AppContext.BaseDirectory, "assets", "deck.pptx");
using var prs = new Presentation(path);

Exception: File format is not supported

La biblioteca soporta .pptx (Office Open XML) solo. Legado .ppt Los archivos (binary PowerPoint 97-2003) no son compatibles.

Las formas no tienen una propiedad TextFrame

Algunas formas (Connector, PictureFrame) no tienen un TextFrame. Convierta a IAutoShape y compruebe null antes de acceder al texto.


Preguntas frecuentes

¿La carga preserva todo el contenido original?

Sí. Las partes XML desconocidas se conservan literalmente en el guardado de ida y vuelta. La biblioteca no eliminará ningún contenido XML que aún no reconozca.

¿Puedo cargar un PPTX protegido con contraseña?

Las presentaciones protegidas con contraseña (cifradas) no son compatibles en esta edición.

¿Puedo extraer imágenes incrustadas?

Acceda a la colección de imágenes: prs.Images devuelve el ImageCollection. Cada imagen tiene propiedades para leer los datos de imagen sin procesar.

¿Se admite la carga desde un MemoryStream?

Sí. El Presentation constructor acepta un Stream:

using var stream = new MemoryStream(pptxBytes);
using var prs = new Presentation(stream);
Console.WriteLine($"Slides: {prs.Slides.Count}");

Ver también

 Español