Convertir PPT y PPTX a JPG en PHP

Acerca de la conversión de PowerPoint a JPG

Con la Aspose.Slides API puedes convertir una presentación PowerPoint PPT o PPTX a imagen JPG. También es posible convertir PPT/PPTX a JPEG, PNG o SVG. Con estas funciones es fácil implementar tu propio visor de presentaciones, crear la miniatura de cada diapositiva. Esto puede ser útil si deseas proteger las diapositivas de la presentación contra la copia o demostrar la presentación en modo de solo lectura. Aspose.Slides permite convertir la presentación completa o una diapositiva específica a formatos de imagen.

[todo:image_alt_text

Convertir PowerPoint PPT/PPTX a JPG

Aquí están los pasos para convertir PPT/PPTX a JPG:

  1. Crea una instancia del tipo Presentation.
  2. Obtén el objeto de diapositiva del tipo ISlide a partir de la colección Presentation.getSlides() .
  3. Crea la miniatura de cada diapositiva y luego conviértela a JPG. El método ISlide.getImage(float scaleX, float scaleY) se utiliza para obtener una miniatura de una diapositiva, y devuelve un objeto Images como resultado. El método getImage debe llamarse desde la diapositiva necesaria del tipo ISlide, pasando las escalas de la miniatura resultante al método.
  4. Después de obtener la miniatura de la diapositiva, llama al método IImage.save(String formatName, int imageFormat) del objeto miniatura. Pasa el nombre de archivo resultante y el formato de imagen.
  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    foreach($pres->getSlides() as $sld) {
      # Crea una imagen a escala completa
      $slideImage = $sld->getImage(1.0, 1.0);
      # Guarda la imagen en disco en formato JPEG
      try {
        $slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Convertir PowerPoint PPT/PPTX a JPG con dimensiones personalizadas

Para cambiar la dimensión de la miniatura resultante y la imagen JPG, puedes establecer los valores ScaleX y ScaleY pasándolos al método ISlide.getImage(float scaleX, float scaleY):

  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    # Define las dimensiones
    $desiredX = 1200;
    $desiredY = 800;
    # Obtiene valores escalados de X y Y
    $ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
    $ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
    foreach($pres->getSlides() as $sld) {
      # Crea una imagen a escala completa
      $slideImage = $sld->getImage($ScaleX, $ScaleY);
      # Guarda la imagen en disco en formato JPEG
      try {
        $slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Renderizar Comentarios al Guardar Diapositivas como Imágenes

Aspose.Slides para PHP via Java ofrece una funcionalidad que permite renderizar los comentarios en las diapositivas de una presentación al convertir esas diapositivas en imágenes. Este código PHP demuestra la operación:

  $pres = new Presentation("presentation.pptx");
  try {
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomTruncated);
    $opts = new RenderingOptions();
    $opts->setSlidesLayoutOptions($notesOptions);
    foreach($pres->getSlides() as $sld) {
      $slideImage = $sld->getImage($opts, new Java("java.awt.Dimension", 740, 960));
      try {
        $slideImage->save(String->format("Slide_%d.png", $sld->getSlideNumber()));
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Preguntas frecuentes

¿Este método admite conversión por lotes?

Sí, Aspose.Slides permite la conversión por lotes de varias diapositivas a JPG en una sola operación.

¿La conversión admite SmartArt, gráficos y otros objetos complejos?

Sí, Aspose.Slides renderiza todo el contenido, incluidos SmartArt, gráficos, tablas, formas y más. Sin embargo, la precisión del renderizado puede variar ligeramente respecto a PowerPoint, especialmente al usar fuentes personalizadas o faltantes.

¿Existen limitaciones en la cantidad de diapositivas que se pueden procesar?

Aspose.Slides en sí no impone límites estrictos en la cantidad de diapositivas que puedes procesar. Sin embargo, puedes encontrar errores de falta de memoria al trabajar con presentaciones grandes o imágenes de alta resolución.

Ver también

Consulta otras opciones para convertir PPT/PPTX a imagen, como: