Windows 7 Professional x64 - WAMP Server 2.4
Apache Version(x32):2.4.4
PHP版本(x32):5.4.16
Office 2003 - 与旧服务器版本相同
我有一个遗留程序,它读取共享驱动器上的本地.doc文件,将内容插入书签,然后在将这些文件转换为.pdf并通过电子邮件发送给我们的客户之前保存这些文件。在其他任何人告诉我之前,I am VERY AWARE that this is not a recommended or supported way to do things.只需要让这些遗留代码在新硬件上工作,这样我就可以完成一个新软件的工作,最终将取代它并避免COM脚本。
最近,运行此软件的服务器变得无法忍受。我们正在设置一个新的服务器来移动它,但我在新环境中遇到了一个显示停止的关键错误:
以下代码工作且没有任何问题:
// starting word
$word = new COM("Word.Application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
$word->Visible = 0;
//open an empty document
$word->Documents->Add();
$word->Selection->TypeText("This is a test...");
$word->ActiveDocument->saveAs('C:\test.doc');
echo "File saved\n";
//closing word
$word->Quit();
//free the object
$word = null;
echo "Word closed\n";
以下代码永远挂起,永远不会超过$ word-> Documents-> Open();线。
// starting word
$word = new COM("Word.Application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
//bring it to front
$word->Visible = 0;
$word->Documents->Open('C:\test.doc') or die ('Could not open file');
//closing word
$word->Quit();
//free the object
$word = null;
echo "Word closed\n";
请帮助!看到PHP / COM可以创建一个新文件并保存它让我觉得这是可能的,但是有一些权限问题隐藏在幕后,阻止Word打开现有文件。
答案 0 :(得分:1)
Apache服务需要1个窗口帐户才能启动它。 很简单,你需要通过命令来启动apache来测试。