2012-01-04 25 views
7

このフォーラムでいくつかの類似した質問がありましたが、それらはすべて.NETプラットフォーム用でしたので、重複しないでください。私はLinuxシステムを持っているので、スライドをPHPやシェルスクリプト(あまり好ましくない)を介して画像に変換したい。 convertコマンドはpdfをjpgに変換できますが、pptは変換できません。pptスライドをPHPのjpegイメージに変換するには

助けがあれば助かります。

+0

それは読むことができるようあなたは、OpenOfficeのインプレスのスクリプトを作成してみてくださいすることができます(一部の)PPTをレンダリングしてレンダリングしますが、Powerpoint自体が生成するものと似た結果を得ることはヒット/ミスになります。 –

+0

明確にしてください:* .ppt(多分実行可能)または* .pptx(不可能に近い) –

答えて

1

私はそうは考えていません。 .NETを使用するということは、ユーザーがPowerPointアプリケーションのインスタンスを作成して特定のスライドをJPGまたはPDFに印刷するように要求していることを意味しますが、PHPの場合、Linuxシステムからは可能ではないと思います。

Windowsサーバーに接続できる場合は、PHPのCOMインターフェイスを使用してCOMアプリケーションを作成し、インストールされているPowerPointアプリケーションを起動し、COMコンポーネントが必要なメソッドを公開している限り(おそらくPRINT())

幸運

+0

hmmm。私は、私は自分のサイトのユーザーに事前に変換されたpdfをアップロードするように頼む必要があると思う。 – prongs

2

http://code.google.com/p/jodconverter/が所定の位置にあるすべてのビルディング・ブロックを持っているようだ、でも、サンプルWebアプリケーションがあります。

http://sourceforge.net/projects/jodconverter/で古いバージョンを使用していましたが、実際には詳細を覚えていません。

+0

あなたはpptxが不可能だと言ったのですか?このプロジェクトは何をしていますか? – prongs

+0

実際には.pptxファイルを確実に読み込めない[Open | Libre] Officeを使用しています –

0

やああなたは、あなたがあなたがLibreOfficeに単純なコマンドラインラッパーですUnoconvを使用することができ、シェルスクリプトから

<?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; 

?>

0

これを試してみることができますphp.iniでCOMを有効にする必要があります合理的な品質に変換することができます。

PHP(およびLinux)から直接呼び出すことができる高品質の出力を得るには、Zamzarなどの専用のファイル変換APIを使用できます。

documentationで詳細)次のようになりJPEGに変換するためPPT(またはPPTX)ファイルを送信するためのコード:

<?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); 
?> 
関連する問題