Bonjour,
J'ai besoin de manipuler, en PHP, des fichiers word pour les convertir en PDF après quelques modifications. Je me suis donc rapidement dirigé vers la classe COM.
Cependant un simple copier/coller du 1er exemple de la doc officiel de PHP ne fonctionne pas chez moi...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php
/* Démarrage de Word */
$word = new COM("word.application") or die("Impossible d'instancier l'application Word");
echo "Word lancé, version {$word->Version}\n";
/* Amener Word devant */
$word->Visible = 1;
/* Cree un document vide */
$word->Documents->Add();
/* Quelques commandes */
$word->Selection->TypeText("Ceci est un test...");
$word->Documents[1]->SaveAs("test.doc");
/* Fermeture de word */
$word->Quit();
/* Libération des ressources */
$word = null;
?> |
Ce code m'envoie l'erreur suivante :
Fatal error: Call to undefined method variant::SaveAs()
J'ai recherché une solution sur internet pendant plusieurs heures. La plupart sans aucune réponse, les autres n'ont rien de concluant. Certains ont même dit que le problème été résolu... sans annoncer la solution
Pour résumer ce que j'ai trouvé:
* Certains disaient d'utiliser
$word->ActiveDocuments->SaveAs("test.doc");
au lieu de
$word->Documents[1]->SaveAs("test.doc");
Mais le résultat est le même.
* D'autres affirme qu'un tableau commence à l'indice 0, donc d'utiliser
$word->Documents[0]->SaveAs("test.doc");
Mais rien n'existe à cet index du tableau.
1 2
| Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft Word
Description: Le membre de la collection requis n'existe pas.' |
* Un dernier affirmait qu'il s'agit d'une collection et pas d'un tableau, donc qu'il faut écrire le code suivant :
$word->Documents(1)->SaveAs("test.doc");
Ce qui donne toujours la même erreur qu'au debut...
Avez-vous une idée?
Merci d'avance.
Partager