Da uno script di shell è possibile utilizzare Unoconv che è una semplice riga di comando wrapper per LibreOffice che ti consentirebbe di convertire in una qualità ragionevole.
Per una soluzione con output di qualità superiore che può essere richiamata direttamente da PHP (e su Linux) è possibile utilizzare un'API di conversione file dedicata come Zamzar.
Il codice per inviare un file PPT (o PPTX) per la conversione in JPEG sarà il seguente (maggiori informazioni nella 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);
?>
fonte
2017-11-03 23:29:13
Si può provare scripting OpenOffice Impress, come si può leggere (un po ') PPT e renderli, ma ottenere risultati simili a quelli che Powerpoint stesso produrrà sarà hit/miss. –
Si prega di chiarire: * .ppt (forse fattibile) o * .pptx (quasi impossibile) –