Из сценария оболочки вы можете использовать Unoconv , который представляет собой простую оболочку командной строки для LibreOffice , которая позволит вам конвертировать в приемлемое качество.Решение с более высоким качеством вывода, которое можно вызывать напрямую из PHP (и в Linux), вы можете использовать специальный API для преобразования файлов, например Zamzar .
Код для отправки PPTPPTX) файл для преобразования в JPEG будет выглядеть следующим образом (больше информации в документации ):
<?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);
?>