我正在使用模板文档上的查找/替换方法生成带有 COM(组件对象模型)的 MS Word .docx 文件。
问题:它在我的 PC 上运行良好,但我无法在生产 PC 上运行!!我在两台计算机上都有相同的配置。
首先我实例化一个 COM 对象$word = new COM('word.application');
echo "Loaded Word, version {$word->Version}\n";
说 12.0。所以我推断到目前为止一切都很好。命令出了点问题$word->Documents->Open("c:\\test.docx");
。看起来我放在括号之间的任何内容都没有通过。和我说的一样$word->Documents->Open(" ");
在下一行:$word->Selection->Find->ClearFormatting();
我收到错误消息:“尝试获取非对象的属性”,之后出现致命错误。看起来像传入了一个空字符串,Documents->Open()
并销毁了 COM 对象。
我尝试了相对路径、绝对路径、反斜杠、双斜杠……看起来与它没有任何关系。同样,该命令$word->visible = 1;
也没有提出来。
两台 PC 上的配置大致相同:第一台 PC:-win7 Ultimate,32 位,ms Word 7,相同的 WAMP 版本第二台 PC:-win7 Professional,32 位,ms Word 7,相同的 WAMP 版本
我在第二台 PC 上尝试了宏,例如: Documents.Open FileName:="test.docx" 等,它工作正常。我不知道第二台 PC 有什么不同以及可能是什么原因。