PHP новый COM ("word.application") SaveAS вызывает ошибку "Disk is Full" - PullRequest
0 голосов
/ 26 июня 2009

У меня есть скрипт PHP, работающий на XAMPP в Windows XP, который откроет файл .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 Ответ

3 голосов
/ 26 июня 2009

Кажется, я решил проблему сам.

Я сохранил его в формате RTF, а затем использовал этот класс для преобразования его обратно в формат .doc. Кажется, это занимает много времени, но решил проблему, слава богу.

Ссылка: http://www.phpclasses.org/browse/file/1256.html

Спасибо всем за внимание. Джейми

...