Convertir diapositivas de PowerPoint a PNG en PHP

Acerca de la conversión de PowerPoint a PNG

El formato PNG (Portable Network Graphics) no es tan popular como JPEG (Joint Photographic Experts Group), pero sigue siendo muy popular.

Caso de uso: Cuando tienes una imagen compleja y el tamaño no es un problema, PNG es un formato de imagen mejor que JPEG.

Convertir PowerPoint a PNG

Sigue estos pasos:

  1. Instanciar la clase Presentation.
  2. Obtener el objeto diapositiva de la colección Presentation.getSlides() bajo la interfaz ISlide.
  3. Utilizar el método ISlide.getImage() para obtener la miniatura de cada diapositiva.
  4. Utilizar el método [IImage.save(String formatName, int imageFormat)](https://reference.aspose.com/slides/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) para guardar la miniatura de la diapositiva en formato PNG.

Este código PHP muestra cómo convertir una presentación PowerPoint a PNG:

  $pres = new Presentation("pres.pptx");
  try {
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $slideImage = $slide->getImage();
      try {
        $slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Convertir PowerPoint a PNG con dimensiones personalizadas

Si deseas obtener archivos PNG con una cierta escala, puedes establecer los valores de desiredX y desiredY, que determinan las dimensiones de la miniatura resultante.

Este código demuestra la operación descrita:

  $pres = new Presentation("pres.pptx");
  try {
    $scaleX = 2.0;
    $scaleY = 2.0;
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $slideImage = $slide->getImage($scaleX, $scaleY);
      try {
        $slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Convertir PowerPoint a PNG con tamaño personalizado

Si deseas obtener archivos PNG con un cierto tamaño, puedes pasar tus argumentos preferidos width y height para ImageSize.

Este código muestra cómo convertir un PowerPoint a PNG especificando el tamaño de las imágenes:

  $pres = new Presentation("pres.pptx");
  try {
    $size = new Java("java.awt.Dimension", 960, 720);
    for($index = 0; $index < java_values($pres->getSlides()->size()) ; $index++) {
      $slide = $pres->getSlides()->get_Item($index);
      $slideImage = $slide->getImage($size);
      try {
        $slideImage->save("image_java_" . $index . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Preguntas frecuentes

¿Cómo puedo exportar solo una forma específica (p. ej., gráfico o imagen) en lugar de toda la diapositiva?

Aspose.Slides soporta la generación de miniaturas para formas individuales; puedes renderizar una forma a una imagen PNG.

¿Se admite la conversión paralela en un servidor?

Sí, pero no compartas una única instancia de presentación entre hilos. Usa una instancia separada por hilo o proceso.

¿Cuáles son las limitaciones de la versión de prueba al exportar a PNG?

El modo de evaluación agrega una marca de agua a las imágenes de salida y aplica otras restricciones hasta que se aplique una licencia.