我正在使用模板文档上的查找/替换方法使用COM(组件对象模型)生成MS Word .docx文件。
问题:它在我的电脑上工作正常,但我无法在生产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专业版,32位,ms Word 7,同样的WAMP版本
我在第二台PC上尝试过宏,比如:Documents.Open FileName:=“test.docx”等,它运行正常。我不知道第二台PC有什么不同,可能是什么原因。