Desde un script que puede utilizar Unoconv que es un simple envoltorio de línea de comandos para LibreOffice que le permitiría convertir a una calidad razonable.
Para una solución con salida de mayor calidad que se puede invocar directamente desde PHP (y en Linux) puede usar una API de conversión de archivos dedicada como Zamzar.
El código para enviar un archivo de PPT (o PPTX) para su conversión en JPEG sería el siguiente (más información en la documentation):
<?php
// Build request
$endpoint = "https://api.zamzar.com/v1/jobs";
$apiKey = "YOUR_KEY";
$sourceFilePath = "/tmp/my.ppt"; // Or PPTX
$targetFormat = "jpg";
$sourceFile = curl_file_create($sourceFilePath);
$postData = array(
"source_file" => $sourceFile,
"target_format" => $targetFormat
);
// Send request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $endpoint);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $apiKey . ":");
$body = curl_exec($ch);
curl_close($ch);
// Process response (with link to converted files)
$response = json_decode($body, true);
print_r($response);
?>
Usted puede tratar de secuencias de comandos de OpenOffice Impress, ya que puede leer (algunos) PPT y los renderiza, pero obtener resultados similares a lo que Powerpoint generará será un acierto. –
Por favor, aclare: * .ppt (quizás factible) o * .pptx (casi imposible) –