Abrir Presentación en C#

Además de crear presentaciones de PowerPoint desde cero, Aspose.Slides te permite abrir presentaciones existentes. Después de cargar una presentación, puedes obtener información sobre la presentación, editar la presentación (el contenido en sus diapositivas), agregar nuevas diapositivas o eliminar las existentes, etc.

Abrir Presentación

Para abrir una presentación existente, simplemente tienes que instanciar la clase Presentation y pasar la ruta del archivo (a la presentación que quieres abrir) a su constructor.

Este código C# te muestra cómo abrir una presentación y también averiguar cuántas diapositivas contiene:

// Instancia la clase Presentation y pasa la ruta del archivo a su constructor
Presentation pres = new Presentation("OpenPresentation.pptx");

// Imprime el número total de diapositivas presentes en la presentación
System.Console.WriteLine(pres.Slides.Count.ToString());

Abrir Presentación Protegida por Contraseña

Cuando tengas que abrir una presentación protegida por contraseña, puedes pasar la contraseña a través de la propiedad Password (de la clase LoadOptions) para desencriptar la presentación y cargar la presentación. Este código C# demuestra la operación:

	LoadOptions loadOptions = new LoadOptions {Password = "TU_CONTRASEÑA"};
	using (Presentation presentation = new Presentation("pres.pptx", loadOptions))
	{
	  // Haz algo con la presentación desencriptada
	}

Abrir Presentación Grande

Aspose.Slides proporciona opciones (la propiedad BlobManagementOptions en particular) bajo la clase LoadOptions para permitirte cargar presentaciones grandes.

Este C# demuestra una operación en la que se carga una presentación grande (digamos 2GB de tamaño):

const string pathToVeryLargePresentationFile = "veryLargePresentation.pptx";

LoadOptions loadOptions = new LoadOptions
{
    BlobManagementOptions = {
        // Elijamos el comportamiento KeepLocked - el "veryLargePresentation.pptx" estará bloqueado durante
        // la duración de la instancia de Presentation, pero no necesitamos cargarlo en memoria ni copiarlo en
        // el archivo temporal
        PresentationLockingBehavior = PresentationLockingBehavior.KeepLocked,
    }
};

using (Presentation pres = new Presentation(pathToVeryLargePresentationFile, loadOptions))
{
    // La presentación grande ha sido cargada y puede ser utilizada, pero el consumo de memoria sigue siendo bajo.

    // Realiza cambios en la presentación.
    pres.Slides[0].Name = "Presentación muy grande";

    // La presentación se guardará en otro archivo. El consumo de memoria se mantiene bajo durante la operación
    pres.Save("veryLargePresentation-copy.pptx", SaveFormat.Pptx);

    // ¡No se puede hacer eso! Se arrojará una excepción de IO, porque el archivo está bloqueado mientras los objetos pres
    // no serán destruidos
    File.Delete(pathToVeryLargePresentationFile);
}

// Se puede hacer aquí, el archivo de origen no está bloqueado por el objeto pres
File.Delete(pathToVeryLargePresentationFile);

Cargar Presentación

Aspose.Slides proporciona IResourceLoadingCallback con un único método para permitirte gestionar recursos externos. Este código C# te muestra cómo utilizar la interfaz IResourceLoadingCallback:

LoadOptions opts = new LoadOptions();
opts.ResourceLoadingCallback = new ImageLoadingHandler();
Presentation presentation = new Presentation("presentation.pptx", opts);
public class ImageLoadingHandler : IResourceLoadingCallback
{
    public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args)
    {
        if (args.OriginalUri.EndsWith(".jpg"))
        {
            try // Carga la imagen de sustitución
            {
                byte[] imageBytes = File.ReadAllBytes("c:\\aspose-logo.jpg");
                args.SetData(imageBytes);
                return ResourceLoadingAction.UserProvided;
            }
            catch (Exception)
            {
                return ResourceLoadingAction.Skip;
            }
        }
        else if (args.OriginalUri.EndsWith(".png"))
        {
            // Establece la url de sustitución
            args.Uri = "http://www.google.com/images/logos/ps_logo2.png";
            return ResourceLoadingAction.Default;
        }

        // Salta todas las demás imágenes
        return ResourceLoadingAction.Skip;
    }
}

Cargar Presentación Sin Objetos Binarios Incrustados

La presentación de PowerPoint puede contener los siguientes tipos de objetos binarios incrustados:

Utilizando la propiedad ILoadOptions.DeleteEmbeddedBinaryObjects puedes cargar la presentación sin ningún objeto binario incrustado.

Esta propiedad puede ser útil para eliminar contenido binario potencialmente malicioso.

El código C# demuestra cómo cargar y guardar una presentación sin contenido de malware:

LoadOptions loadOptions = new LoadOptions()
{
	DeleteEmbeddedBinaryObjects = true
}

using (var pres = new Presentation("malware.ppt", loadOptions))
{
    pres.Save("clean.ppt", SaveFormat.Ppt);
}

Abrir y Guardar Presentación

Pasos: Abrir y Guardar Presentación en C#

  1. Crea una instancia de la clase Presentation y pasa el archivo que deseas abrir.
  2. Guarda la Presentación.
// Carga cualquier presentación soportada e.g ppt, pptx, odp
Presentation presentation = new Presentation("Sample.odp");

presentation.Save("OutputPresenation.pptx", SaveFormat.Pptx);