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();
}
Info
Para sortear ciertas limitaciones al interactuar con un flujo, Aspose.Slides puede copiar el contenido del flujo. Cargar una presentación grande a través de su flujo resultará en la copia de los contenidos de la presentación y causará una carga lenta. Por lo tanto, cuando intentes cargar una presentación grande, te recomendamos encarecidamente que utilices la ruta del archivo de la presentación y no su flujo.
Cuando deseas crear una presentación que contenga objetos grandes (video, audio, imágenes grandes, etc.), puedes usar la facilidad de Blob para reducir el consumo de memoria.
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:
- Proyecto VBA (IPresentation.VbaProject);
- Datos de objeto OLE incrustados (IOleEmbeddedDataInfo.EmbeddedFileData);
- Datos binarios de Control ActiveX (IControl.ActiveXControlBinary);
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:
- Crea una instancia de la clase Presentation y pasa el archivo que deseas abrir.
- 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();
}