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.
Tip
Puede que quieras consultar los convertidores gratuitos de PowerPoint a PNG de Aspose: PPTX a PNG y PPT a PNG. Son una implementación en vivo del proceso descrito en esta página.Convertir PowerPoint a PNG
Sigue estos pasos:
- Instanciar la clase Presentation.
- Obtener el objeto diapositiva de la colección Presentation.getSlides() bajo la interfaz ISlide.
- Utilizar el método ISlide.getImage() para obtener la miniatura de cada diapositiva.
- 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.