Presentación Abierta

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.

Presentación Abierta

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

Este código PHP 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
  $pres = new Presentation("Presentation.pptx");
  try {
    # Imprime el número total de diapositivas presentes en la presentación
    echo($pres->getSlides()->size());
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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 descifrar la presentación y cargarla. Este código PHP demuestra la operación:

  $loadOptions = new LoadOptions();
  $loadOptions->setPassword("TU_CONTRASEÑA");
  $pres = new Presentation("pres.pptx", $loadOptions);
  try {
    # Realiza alguna operación con la presentación descifrada
  } finally {
    if (!java_is_null($pres)) {
      $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 = new LoadOptions();
  $loadOptions->getBlobManagementOptions()->setPresentationLockingBehavior(PresentationLockingBehavior->KeepLocked);
  $loadOptions->getBlobManagementOptions()->setTemporaryFilesAllowed(true);
  $loadOptions->getBlobManagementOptions()->setMaxBlobsBytesInMemory(0);
  $pres = new Presentation("veryLargePresentation.pptx", $loadOptions);
  try {
    # 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->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 (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Cargar Presentación

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


class ImageLoadingHandler {
    function resourceLoading($args) {
      if (java_values($args->getOriginalUri()->endsWith(".jpg"))) {
        # carga una imagen de sustitución
        $file = new Java("java.io.File", "aspose-logo.jpg");
        $Array = new JavaClass("java.lang.reflect.Array");
        $Byte = new JavaClass("java.lang.Byte");
        $imageBytes = $Array->newInstance($Byte, $Array->getLength($file));
        try {
            $dis = new Java("java.io.DataInputStream", new Java("java.io.FileInputStream", $file));
            $dis->readFully($imageBytes);
        } finally {
            if (!java_is_null($dis)) $dis->close();
        }
          $args->setData($imageBytes);
          return ResourceLoadingAction::UserProvided;
      } else if (java_values($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 demás imágenes
      return ResourceLoadingAction::Skip;
    }
  }

  $opts = new LoadOptions();
  $loadingHandler = java_closure(new ImageLoadingHandler(), null, java("com.aspose.slides.IResourceLoadingCallback"));
  $opts->setResourceLoadingCallback($loadingHandler);
  $pres = new Presentation("presentation.pptx", $opts);

Cargar Presentación Sin Objetos Binarios Incorporados

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

Usando la propiedad ILoadOptions.DeleteEmbeddedBinaryObjects, puedes cargar la presentación sin ningún objeto binario incorporado.

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 de malware:

  $loadOptions = new LoadOptions();
  $loadOptions->setDeleteEmbeddedBinaryObjects(true);

  $pres = new Presentation("malware.ppt", $loadOptions);
  try {
    $pres->save("clean.ppt", SaveFormat::Ppt);
  } finally {
    if (!java_is_null(pres)) { 
      $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
  $pres = new Presentation();
  try {
    # ...hacer algún trabajo aquí...
    # Guarda tu presentación en un archivo
    $pres->save("demoPass.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }