PHP新COM(“word.application”)SaveAS导致“磁盘已满”错误

时间:2009-06-26 19:01:54

标签: php windows com ms-word

我在Windows XP中的XAMPP上运行了一个PHP脚本,它将打开一个.doc文件,然后将其另存为另一个副本。这在早些时候工作正常,但不知何故错误信息不断出现。

$path = "c:/xampp/htdocs/";
com_load_typelib('Word.Application');
$word = new COM("word.application") or die("Unable to instantiate Word");

$word->Documents->Open($path."tmp/invoice.doc");

$bookmarkname = "InvoiceNo";
$objBookmark  = $word->ActiveDocument->Bookmarks($bookmarkname)->Range->Text = "INVOICE ID";

$word->Documents[1]->SaveAs($path."tmp/invoice2.doc");
$word->ActiveDocument->Close(false);
$word->Quit();
$word = null;

我觉得代码不是问题,因为它几个小时前就已经开始工作了,但现在还没有。我怀疑它与我的Word 2003有关,有些事情会导致它出错。

我尝试重新启动,清除临时文件夹,如Microsoft网站上所述。

我仍然可以使用file_put_contents写入该文件夹,所以如果我可以从$ word-> Documents [1]中提取原始数据,那么我可以使用file_put_contents来保存它而不是使用Word的保存功能。问题是文档记录很少,所以我找不到可用的功能列表。

1 个答案:

答案 0 :(得分:3)

看来我自己解决了这个问题。

我已将它保存在RTF中,然后使用此类将其转换回.doc格式,似乎需要更长时间才能解决问题,感谢上帝。

链接:http://www.phpclasses.org/browse/file/1256.html

无论如何,谢谢大家的关注。 杰米