9

ブローコードを実行すると:

/*** PPT to Image conversion ***/
$ppt_file = 'E:\wamp\www\temp/a.pptx';
$app = new COM("PowerPoint.application") or die("Unable to instantiate PowerPoint");
$app->Visible = true;
$app->Presentations->Open($ppt_file); 
$app->Presentations[1]->SaveAs("E:/tmp/outdir",18);
$app->Presentations[1]->Close();
$app->Quit();
$app = null; 

それは私に1つの例外を与えます:

致命的なエラー:キャッチされない例外'com_exception'とメッセージ'ソース: Microsoft Office PowerPoint 2007
説明: PowerPointはファイルを開くことができませんでした。E:\ wamp \ www \ temp \ video_conversion.php:107スタックトレース:#0 E:\ wamp \ www \ temp \ video_conversion.php(107):variant-> Open('E:\ wamp \ www \ tem ...')#1 {main}が107行目のE:\ wamp \ www \ temp\video_conversion.phpにスローされました

何が問題なのかわかりません。

4

3 に答える 3

4

これは一種の問題であり、以下の要因によるものです。

  1. PHP.iniの設定
  2. フォルダのアクセス許可
  3. サーバーでオープンを許可するが有効になっていない
  4. 許可されるアップロードサイズ
于 2012-07-21T22:19:48.347 に答える
3

エラー内に、次のメッセージが表示されます。PowerPoint could not open the file.' in E:\wamp\www\temp\video_conversion.php:107

PHPユーザーはファイルへのアクセス許可を持っていますE:\wamp\www\temp/a.pptxか?

E:\wamp\www\temp\a.pptxスラッシュを修正してみてください。/通常はオプションまたは引数を指します。

結局のところ、そのファイルへのアクセスを妨げているのは、アクセス許可エラー、場所の問題などのようです。またはでファイルを開くことができますfopenfile_get_contents

于 2012-07-21T14:37:35.653 に答える
2

comクラスでこれを試してください:

COMクラスリファレンス: -http: //us2.php.net/manual/en/class.com.php

<html>
<head>
<title>ShotDev.Com Tutorial</title>
</head>
<body>
<?
    $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;
?>
PowerPoint Created to Folder <b><?=$FileName?></b>
</body>
</html>

またはこれを試してください:

$powerpnt = new COM("powerpoint.application") or die("Unable to instantiate Powerpoint");

$presentation = $powerpnt->Presentations->Open(realpath($file), false, false, false) or die("Unable to open presentation");

foreach($presentation->Slides as $slide)

{

    $slideName = "Slide_" . $slide->SlideNumber;

    $exportFolder = realpath($uploadsFolder);

    $slide->Export($exportFolder."\\".$slideName.".jpg", "jpg", "600", "400");

}

$powerpnt->quit();
于 2012-07-27T03:21:22.800 に答える