Php - COM et processus qui ne termine pas

vodkadji Messages postés 3 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 2 juin 2003 - 2 juin 2003 à 12:57
cs_yanck Messages postés 4 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 25 août 2005 - 25 août 2005 à 10:13
Bonjour

J'utilise l'interface php et COM pour écrire à partir d'un script php dans un document word.

Le problème est le suivant : pour atteindre des bookmarks dans le document word que j'ouvre, il faut que je charge dans mon script la librairie appropriée par la commande suivante :

com_load_typelib('Word.Application');

cette commande lance un processus WINWORD.EXE, qui ne termine jamais (même quand on ferme word, ou que le script s'est exécuté).

Pourquoi ce precessus ne termine-t-il pas ?
Comment terminer ce processus autrement qu'à la main (ctrl+al+supp puis terminer le processus etc.) ?

merci pour votre aide

Nicolas

voici le script exécuté :

<?php

$empty = new VARIANT();

//chargement de la librairie
com_load_typelib('Word.Application');

// Création de l'objet
$word = new COM('word.application') or die('Unable to load Word');
print "word chargé, version {$word->Version}\n";

$word->Documents->Open("C:/test.doc");

// On remplit les champs à partir des données des formulaires
$word->Selection->GoTo(wdGoToBookmark,$empty,$empty,"commune");
$word->Selection->TypeText("toto");

// On sauve, on ferme word et on termine
$word->Documents[1]->SaveAs("C:/toto.doc");
$word->Quit();
$word->Release();
$word = null;
print "Word fermé.\n";

?>

4 réponses

cs_yo51 Messages postés 10 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 juillet 2003
18 juin 2003 à 11:21
yop<s>yop...yop</s> 8-)

salut,

essaie tout simplement d'enlever cette ligne (com_load_typelib('Word.Application'));

tu va voir ça marche sans et alors plus de processus de word!

------------------------------
Réponse au message :
-------------------------------

> Bonjour
>
> J'utilise l'interface php et COM pour écrire à partir d'un script php dans un document word.
>
> Le problème est le suivant : pour atteindre des bookmarks dans le document word que j'ouvre, il faut que je charge dans mon script la librairie appropriée par la commande suivante :
>
> com_load_typelib('Word.Application');
>
> cette commande lance un processus WINWORD.EXE, qui ne termine jamais (même quand on ferme word, ou que le script s'est exécuté).
>
> Pourquoi ce precessus ne termine-t-il pas ?
> Comment terminer ce processus autrement qu'à la main (ctrl+al+supp puis terminer le processus etc.) ?
>
> merci pour votre aide
>
> Nicolas
>
> voici le script exécuté :
>
> <?php
>
> $empty = new VARIANT();
>
> //chargement de la librairie
> com_load_typelib('Word.Application');
>
> // Création de l'objet
> $word = new COM('word.application') or die('Unable to load Word');
> print "word chargé, version {$word->Version}\n";
>
> $word->Documents->Open("C:/test.doc");
>
>
> // On remplit les champs à partir des données des formulaires
> $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,"commune");
> $word->Selection->TypeText("toto");
>
> // On sauve, on ferme word et on termine
> $word->Documents[1]->SaveAs("C:/toto.doc");
> $word->Quit();
> $word->Release();
> $word = null;
> print "Word fermé.\n";
>
> ?>
>
0
XIIIadidas Messages postés 5 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 28 octobre 2004
28 oct. 2004 à 15:57
Salut,
J'arrive un peu tard sur le sujet mais lorsque j'enlève ligne com_load_typelib('Word.Application');, il me met des warning sur les lignes $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'mon_champs'); et dans le doc word il m'ecrit mes variables en début de fichier et dans les signets au lieu de les écrire juste dans les signets...

Merci d'avance
XIII
0
cs_rudddy Messages postés 24 Date d'inscription dimanche 11 janvier 2004 Statut Membre Dernière intervention 11 mars 2007
5 févr. 2005 à 19:36
salut XIII tu as trouvé une solution j'ai le meme probleme que toi ??
0
cs_yanck Messages postés 4 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 25 août 2005
25 août 2005 à 10:13
salut,

peut être un peut tard pour la réponse, mais si ca ne sert pas ici, ca servira pour quelqu'un d'autre.

pour la fermeture d'un processus word, il te faut fermer les documents avant de fermer word.


$word
->Documents->Close();
$word->Quit();

Bonne prog @+
0
Rejoignez-nous