无法在PHP中使用COM打开Word文档

时间:2012-08-24 07:16:01

标签: php com ms-word

我正在尝试使用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);

我100%确定Word文档存在。我已经多次检查了这个。该文件的权限设置为Full Control。所以这也不可能。


我也读过关于php.net的评论。它说IIS引起了一个问题(我已经运行了)。他的解决方案是:

  • 执行“dcomcnfg”
  • 打开组件服务>电脑>我的电脑> DCOM配置
  • 搜索Microsoft Office Word 97-2003文档(这将是这样的翻译成您的语言,所以需要一段时间并搜索它)< - 困在这一个,找不到任何东西称为“Microsoft Office ...”
  • 右键单击它并打开属性
  • 选择“身份”标签
  • 通常将其设置为“启动用户”。您必须将其更改为“交互式用户”或您选择的管理员用户。
  • 应用这些新设置并测试您的COM应用程序。它现在应该可以正常工作。

无论如何,我仍然没有这个工作。任何人都知道怎么可能修复这个错误... ???

1 个答案:

答案 0 :(得分: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. DCOM配置
  13. Microsoft Excel应用程序
  14. 所以现在你应该可以按照我的第一篇文章中的步骤进行操作了。然后PHP应该能够毫无困难地阅读文档。