8

COM機能を使ってPHOでWord文書の内容を開いて読み込もうとしています。しかし、内容を読み込もうとすると、次のエラーが発生します。

致命的なエラー:キャッチされない例外'com_exception'とメッセージ'ソース: Microsoft Word
説明:開いているドキュメントがないため、このコマンドは使用できません。

私は次のコードを持っています:

    $word = new \COM ( "word.application" ) or die ( "Could not initialise MS Word object." );
    $word->Documents->Open ( realpath("test.doc" ) );

    // Extract content.
    $content = (string) $word->ActiveDocument->Content;

    echo $content;

    $word->ActiveDocument->Close(false);

    $word->Quit();
    $word = null;
    unset($word);

Word文書が存在することを100%確信しています。私はこれを何度もチェックしました。ファイルの権限はに設定されていますFull Control。だからそれもできません。


php.netのコメントも読んだ。IISが問題を引き起こしているとのことです(私はそれを実行しています)。彼の解決策はこれでした:

  • 「dcomcnfg」を実行します
  • [コンポーネントサービス]>[コンピューター]>[マイコンピューター]>[DCOM構成]を開きます
  • Microsoft Office Word 97-2003ドキュメントを検索します(このようなものがあなたの言語に翻訳されるので、しばらくして検索してください)<-これで立ち往生し、「MicrosoftOffice...」と呼ばれるものが見つかりません。 「」
  • それを右クリックして、プロパティを開きます
  • 「ID」タブを選択します
  • 通常、これは「起動ユーザー」に設定されます。これを「インタラクティブユーザー」または選択した管理者ユーザーに変更する必要があります。
  • これらの新しい設定を適用して、COMアプリケーションをテストします。これで正常に動作するはずです。

とにかく、私はまだこれを機能させていません。誰でもこのエラーをどのように修正できるか考えています...???

4

1 に答える 1

8

私はちょうど解決策を見つけました。私が話したステップ:

  • 「dcomcnfg」を実行します
  • [コンポーネントサービス]>[コンピューター]>[マイコンピューター]>[DCOM構成]を開きます
  • Microsoft Office Word 97-2003ドキュメントを検索します(これは...になります。
  • 等..

それはうまくいきます。しかし、私が言ったように、私はMicrosoft Office Word 97-2003設定を見つけることができませんでした。これが、リストに表示されるようにするために私が行ったことです。

  1. 始める
  2. 走る
  3. mmc -32
  4. ファイル
  5. 追加削除スナップイン
  6. コンポーネントサービス
  7. 追加
  8. わかった
  9. コンソールルート
  10. コンポーネントサービス
  11. コンピューター
  12. ぼくのコンピュータ
  13. DCOM構成
  14. MicrosoftExcelアプリケーション

これで、私の最初の投稿からの手順に従うことができるはずです。そして、PHPは問題なくドキュメントを読むことができるはずです。

于 2012-08-24T07:44:49.440 に答える