Ik heb momenteel de volgende code:
<?php
echo "<p>Word Test Loaded: ".date("d-m-Y H:i:s")."</p>";

$filename = $_SERVER['DOCUMENT_ROOT']."/tmp/test.doc";

if(file_exists($filename)){

echo "<p>The file $filename exists</p>";

$word = new COM("word.application") or die ("<p>Could not initialise MS Word object.</p>");
print "<p>Loaded Word, version {$word->Version}</p>";

$word->Visible = true;

$word->Documents->Add();

$word->ActiveDocument->Open($filename);
print "<p>Document opened</p>";

$word->ActiveDocument->SaveAs("test",8);
print "<p>Document saved</p>";

$word->Quit();
$word->Release();
$word = NULL;

echo "<p>Word Closed</p>";

} else {
echo "<p>The file $filename does not exist</p>";
}
?>

Maar ik krijg onderstaande foutmelding:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> Deze opdracht is niet beschikbaar omdat er geen document is geopend.' in C:\inetpub\wwwroot\word2html\index.php:17 Stack trace: #0 C:\inetpub\wwwroot\word2html\index.php(17): unknown() #1 {main} thrown in C:\inetpub\wwwroot\word2html\index.php on line 17

Ik heb Windows Server 2008 Standard, en ik heb Microsoft Office 2007 erop geïnstalleerd.

Het bestand bestaat:
The file C:\inetpub\wwwroot/tmp/test.doc exists

En MS Word wordt ook gevonden:
Loaded Word, version 12.0
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> Deze opdracht is niet beschikbaar omdat er geen document is geopend

Hij kan het niet vinden, dus of je path klopt niet (controleer even je DOCUMENT_ROOT) verder hbe je te maken met de / en \ in je path, ik weet zo niet of dat problemen geeft maar daar zou je naar kunnen kijken.

Ook is het netter/beter om je variabelen buiten de quotes te zetten.
Dus geen
<?php
echo "<p>The file $filename exists</p>";
?>
maar
<?php
echo '<p>The file ' . $filename.' exists</p>';
?>
Ik heb het nu veranderd naar:
<?php
echo "<p>Word Test Loaded: ".date("d-m-Y H:i:s")."</p>";

$filename = $_SERVER['DOCUMENT_ROOT']."\\tmp\\test.doc";

if(file_exists($filename)){

echo "<p>The file {$filename} exists</p>";

$word = new COM("word.application") or die ("<p>Could not initialise MS Word object.</p>");
print "<p>Loaded Word, version {$word->Version}</p>";

$word->Visible = true;

$word->Documents->Add();

$word->ActiveDocument->Open($filename);
print "<p>Document opened</p>";

$word->ActiveDocument->SaveAs("test",8);
print "<p>Document saved</p>";

$word->Quit();
$word->Release();
$word = NULL;

echo "<p>Word Closed</p>";

} else {
echo "<p>The file $filename does not exist</p>";
}
?>

Maar dat maakt helemaal niets uit.
Probeer i.p.v.
$word->ActiveDocument->Open($filename);

Dit:
$word->Documents[0]->Open(realpath($filename));
Als ik het verander naar onderstaande code:
<?php
echo "<p>Word Test Loaded: ".date("d-m-Y H:i:s")."</p>";

$filename = $_SERVER['DOCUMENT_ROOT']."\\tmp\\test.doc";

if(file_exists($filename)){

echo "<p>The file {$filename} exists</p>";

$word = new COM("word.application") or die ("<p>Could not initialise MS Word object.</p>");
print "<p>Loaded Word, version {$word->Version}</p>";

$word->Visible = true;

$word->Documents->Add();

$word->Documents[0]->Open(realpath($filename));
print "<p>Document opened</p>";

$word->Documents[0]->SaveAs("test",8);
print "<p>Document saved</p>";

$word->Quit();
$word->Release();
$word = NULL;

echo "<p>Word Closed</p>";

} else {
echo "<p>The file $filename does not exist</p>";
}
?>

Dan krijg ik de volgende foutmelding:
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> Het gevraagde lid van de collectie bestaat niet.' in C:\inetpub\wwwroot\word2html\index.php:17 Stack trace: #0 C:\inetpub\wwwroot\word2html\index.php(17): unknown() #1 {main} thrown in C:\inetpub\wwwroot\word2html\index.php on line 17

Line 17:
$word->Documents[0]->Open(realpath($filename));
Probeer dan is 1 ipv 0
Dan krijg je precies hetzelfde:
Het gevraagde lid van de collectie bestaat niet.

Is er nergens op internet iets over die klasse te vinden? Ik kan er niets over vinden. Dan kan ik gewoon zien welke methodes er in die klasse zitten.

Reageren