Abrir Presentación en Java

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 (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 (de la presentación que deseas abrir) a su constructor.

Este código Java 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("Presentation.pptx");
try {
    // Imprime el número total de diapositivas presentes en la presentación
    System.out.println(pres.getSlides().size());
} finally {
    if (pres != null) pres.dispose();
}

Abrir Presentación Protegida por Contraseña

Cuando tienes 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 cargarla. Este código Java demuestra la operación:

 LoadOptions loadOptions = new LoadOptions();
 loadOptions.setPassword("TU_CONTRASEÑA");
 Presentation pres = new Presentation("pres.pptx", loadOptions);
 try {
 // Haz algún trabajo con la presentación desencriptada
 } finally {
     if (pres != null) pres.dispose();
 }

Abrir Presentación Grande

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

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

LoadOptions loadOptions = new LoadOptions();
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(0L);

Presentation pres = new Presentation("veryLargePresentation.pptx", loadOptions);
try {
    // La presentación grande ha sido cargada y se puede utilizar, pero el consumo de memoria sigue siendo bajo.
    // realiza cambios en la presentación.
    pres.getSlides().get_Item(0).setName("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);
} finally {
    if(pres != null) pres.dispose();
}

Cargar Presentación

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

LoadOptions opts = new LoadOptions();
opts.setResourceLoadingCallback(new ImageLoadingHandler());

Presentation pres = new Presentation("presentation.pptx", opts);
class ImageLoadingHandler implements IResourceLoadingCallback 
{
    public int resourceLoading(IResourceLoadingArgs args) 
    {
        if (args.getOriginalUri().endsWith(".jpg")) 
        {
            try // carga la imagen de sustitución
            {
                byte[] imageBytes = Files.readAllBytes(new File("aspose-logo.jpg").toPath());
                args.setData(imageBytes);
                return ResourceLoadingAction.UserProvided;
            } catch (RuntimeException ex) {
                return ResourceLoadingAction.Skip;
            }  catch (IOException ex) {
                ex.printStackTrace();
            }
        } else if (args.getOriginalUri().endsWith(".png")) {
            // establece la url de sustitución
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return ResourceLoadingAction.Default;
        }
        // omite todas las otras 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:

Usando 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 demuestra cómo cargar y guardar una presentación sin ningún contenido malicioso:

LoadOptions loadOptions = new LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);

Presentation pres = new Presentation("malware.ppt", loadOptions);
try {
    pres.save("clean.ppt", SaveFormat.Ppt);
} finally {
    if (pres != null) pres.dispose();
}

Abrir y Guardar Presentación

Pasos para Abrir y Guardar Presentación:

  1. Crea una instancia de la clase Presentation y pasa el archivo que deseas abrir.
  2. Guarda la presentación.
// Instancia un objeto Presentation que representa un archivo PPT
Presentation pres = new Presentation();
try {
    // ...haz algún trabajo aquí...
    
    // Guarda tu presentación en un archivo
    pres.save("demoPass.pptx", com.aspose.slides.SaveFormat.Pptx);
} finally {
    if(pres != null) pres.dispose();
}