我在這個論壇上看到了一些類似的問題,但都是針對.NET
平臺,所以請不要將它作爲重複關閉。我有一個Linux系統,我想通過PHP或shell腳本將幻燈片轉換爲圖像(不太可取)。 convert
命令可以將PDF轉換爲JPG而不是PPT。如何將ppt幻燈片轉換爲php中的jpeg圖像
任何幫助將是偉大的。
我在這個論壇上看到了一些類似的問題,但都是針對.NET
平臺,所以請不要將它作爲重複關閉。我有一個Linux系統,我想通過PHP或shell腳本將幻燈片轉換爲圖像(不太可取)。 convert
命令可以將PDF轉換爲JPG而不是PPT。如何將ppt幻燈片轉換爲php中的jpeg圖像
任何幫助將是偉大的。
我不認爲這是可能的。使用.NET將意味着用戶正在創建一個powerpoint應用程序的實例,並要求它將特定的幻燈片打印爲JPG或PDF格式,但在PHP的情況下,我認爲這不可能從Linux系統中實現。
如果您可以繼續使用Windows服務器,那麼您可以使用PHP的COM接口創建COM應用程序,並啓動安裝的PowerPoint應用程序並執行相同的操作,只要COM組件暴露必要的方法(可能PRINT())
好運
hmmm。我想我需要問我的網站用戶上傳一個預先轉換的PDF。 – prongs 2012-01-05 11:42:23
http://code.google.com/p/jodconverter/似乎已經到位的所有建築物,甚至有一個樣本Web應用程序。
前段時間我們成功使用了舊版本http://sourceforge.net/projects/jodconverter/,但是我真的不記得細節。
你說pptx不可能?這個項目做什麼? – prongs 2012-01-05 11:43:14
它使用[Open | Libre] Office,它不能可靠地加載.pptx文件 – 2012-01-05 11:47:55
您好,您需要啓用在php.ini COM那麼你可以試試這個
<?php
$ppApp = new COM("PowerPoint.Application");
$ppApp->Visible = True;
$strPath = realpath(basename(getenv($_SERVER["SCRIPT_NAME"]))); // C:/AppServ/www/myphp
$ppName = "MySlides.ppt";
$FileName = "MyPP";
//*** Open Document ***//
$ppApp->Presentations->Open(realpath($ppName));
//*** Save Document ***//
$ppApp->ActivePresentation->SaveAs($strPath."/".$FileName,17); //'*** 18=PNG, 19=BMP **'
//$ppApp->ActivePresentation->SaveAs(realpath($FileName),17);
$ppApp->Quit;
$ppApp = null;
?>
從shell腳本可以使用Unoconv這是一個簡單的命令行包裝到LibreOffice這將使您能夠轉換爲合理的質量。
對於可以直接從PHP(和Linux上)調用更高質量輸出的解決方案,可以使用專用文件轉換API,例如Zamzar。
提交PPT(或PPTX)文件轉換爲JPEG將如下(在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);
?>
您可以嘗試腳本OpenOffice的印象,因爲它可以閱讀(有些)PPT並渲染它們,但獲得與Powerpoint本身將產生的結果相似的結果將會被擊中/錯過。 – 2012-01-04 18:43:46
請澄清:* .ppt(也許可行)或* .pptx(接近不可能) – 2012-01-04 18:46:05