このフォーラムでいくつかの類似した質問がありましたが、それらはすべて.NET
プラットフォーム用でしたので、重複しないでください。私はLinuxシステムを持っているので、スライドをPHPやシェルスクリプト(あまり好ましくない)を介して画像に変換したい。 convert
コマンドはpdfをjpgに変換できますが、pptは変換できません。pptスライドをPHPのjpegイメージに変換するには
助けがあれば助かります。
このフォーラムでいくつかの類似した質問がありましたが、それらはすべて.NET
プラットフォーム用でしたので、重複しないでください。私はLinuxシステムを持っているので、スライドをPHPやシェルスクリプト(あまり好ましくない)を介して画像に変換したい。 convert
コマンドはpdfをjpgに変換できますが、pptは変換できません。pptスライドをPHPのjpegイメージに変換するには
助けがあれば助かります。
私はそうは考えていません。 .NETを使用するということは、ユーザーがPowerPointアプリケーションのインスタンスを作成して特定のスライドをJPGまたはPDFに印刷するように要求していることを意味しますが、PHPの場合、Linuxシステムからは可能ではないと思います。
Windowsサーバーに接続できる場合は、PHPのCOMインターフェイスを使用してCOMアプリケーションを作成し、インストールされているPowerPointアプリケーションを起動し、COMコンポーネントが必要なメソッドを公開している限り(おそらくPRINT())
幸運
hmmm。私は、私は自分のサイトのユーザーに事前に変換されたpdfをアップロードするように頼む必要があると思う。 – prongs
http://code.google.com/p/jodconverter/が所定の位置にあるすべてのビルディング・ブロックを持っているようだ、でも、サンプルWebアプリケーションがあります。
http://sourceforge.net/projects/jodconverter/で古いバージョンを使用していましたが、実際には詳細を覚えていません。
あなたはpptxが不可能だと言ったのですか?このプロジェクトは何をしていますか? – prongs
実際には.pptxファイルを確実に読み込めない[Open | Libre] Officeを使用しています –
やああなたは、あなたがあなたが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;
?>
これを試してみることができます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);
?>
それは読むことができるようあなたは、OpenOfficeのインプレスのスクリプトを作成してみてくださいすることができます(一部の)PPTをレンダリングしてレンダリングしますが、Powerpoint自体が生成するものと似た結果を得ることはヒット/ミスになります。 –
明確にしてください:* .ppt(多分実行可能)または* .pptx(不可能に近い) –