Discussion:
Utilisation des constantes OLE dans PHP
(trop ancien pour répondre)
Patrick
2007-07-29 21:03:56 UTC
Permalink
Bonjour,

Je cherche à créer un document Word à partir de PHP.

J'utilise la classe COM pour créer l'objet Word puis les méthodes et
propriétés de l'objet pour y accéder.

Pas de problème jusqu'à l'utilisation des constantes prédéfinies par
Word qui doivent être passées en paramètre de certaines méthodes ou
comme valeur de certaines propriétés : j'obtiens alors une exception
dans PHP.

Voici mon code :

com_load_typelib("Word.Application");
$word = new COM("Word.Application");
$doc = $word->Documents->Add();
$doc->Activate();
$doc->Select();
$word->ActiveDocument->PageSetup->Orientation = wdOrientLandscape;
$word->Selection->TypeText("CRs monitoring for product $product");
$doc->Close(wdDoNotSaveChanges);
$word->Quit();
$word = null;
unset($word);

L'exécution de ce code provoque une exception avec le message d'erreur
suivant : "Parameter 0: Le type ne correspond pas" sur la ligne où est
utilisée la constante "wdOrientLandscape".

J'ai essayé avec et sans l'instruction "com_load_typelib", rien n'y fait !

Pouvez vous me dire ce qu'il faut faire pour faire marcher OLE avec PHP ?

Pour info, je suis sous Win XP, Office XP et PHP 5.2.3.

Merci d'avance.

Patrick
P'tit Marcel
2007-08-01 06:44:42 UTC
Permalink
Post by Patrick
com_load_typelib("Word.Application");
$word = new COM("Word.Application");
$doc = $word->Documents->Add();
$word->ActiveDocument->PageSetup->Orientation = wdOrientLandscape;
L'exécution de ce code provoque une exception avec le message d'erreur
suivant : "Parameter 0: Le type ne correspond pas" sur la ligne où est
utilisée la constante "wdOrientLandscape".
c'est logique : php ne connaît pas de constante nommée
wdOrientLandscape. il faut la définir avec la valeur attendue par Word,
genre :

define("wdOrientLandscape", 1);


eça
--
P'tit Marcel
stats sur les forums modérés http://www.centrale-lyon.org/ng
Continuer la lecture sur narkive:
Loading...