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...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$word->ActiveDocuments->SaveAs("test.doc");
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$word->Documents[0]->SaveAs("test.doc");
Mais rien n'existe à cet index du tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$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.