Affichage fichier Word modifié sur le serveur

Affichage fichier Word modifié sur le serveur - PHP - Programmation

Marsh Posté le 29-03-2006 à 15:53:42    

Salut,
 
mon but en fait est d'utilisé un fichier word type. L'utilisateur choisit un devis, les informations de la base mysql sur ce devis sont remplacé dans un fichier word temporaire qui doit être affiché sur l'écran, ensuite la personne peux choisir de l'imprimer, de l'enregistrer sur son pc etc..
J'ai trouver pour l'instant comment remplir un fichier word temporaire, et même l'imprimer, mais pas comment l'afiché a l'écran (pas sur le serveur, sur le client :D)
Si vous aviez des idées, voici mon code commenté:
 

Code :
  1. $filename = "$path_contrat/$type";      // adresse du contrat type (.doc)
  2. // pas de limite de temps
  3. set_time_limit(0);
  4. // Pas de paramétres requis
  5. $empty = new VARIANT();
  6. // Chargement de la librairie
  7. com_load_typelib('Word.Application');
  8. // Création de l'object
  9. $word = new COM('word.application') or die('Word n\'est pas installé');
  10. echo "Chargement de Word version {$word->Version}\n";
  11. $word->Visible = 0;      // ne dois pas etre visible sur le serveur
  12. $word->Documents->Open($filename);       // Ouvre le document
  13. // Exemple de Remplacement
  14. $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'$NOM$');      // Remplacement des signet du fichier type par les variables récupérées dans la base
  15. $word->Selection->TypeText($nom);
  16. $word->Selection->GoTo(wdGoToBookmark,$empty,$empty,'$TEL_FAX$');
  17. $word->Selection->TypeText($tel_fax);
  18. ...
  19. ...
  20. if(isset($_POST['imprimer']))      // Si on veux imprimer
  21. {
  22.  $word->ActiveDocument->PrintOut();      // Imprimer
  23.  $word->Documents[1]->Close(false);      // Fermer et liberer la mémoire
  24.  $word->Quit($empty,$empty,$empty);
  25.  $word->Release();
  26.  $word = null;
  27.  unset($word);
  28. }
  29. else
  30. {
  31. ??      //   <-- C'est la que je cherche comment l'affiché sur l'écran du client
  32. }

 
 
 Merci!

Reply

Marsh Posté le 29-03-2006 à 15:53:42   

Reply

Marsh Posté le 29-03-2006 à 16:16:44    

Qu'entends tu exactement par:

LouyZ a écrit :

comment l'afiché a l'écran (pas sur le serveur, sur le client :D)


L'afficher DANS le navigateur du visiteur? Ceci n'est possible que dans le cas ou le poste est configuré avec toukivabien sinon ça marchera pas.
Mais le plus semble SIMPLE est encore de balourder un header content-type:application/msword puis le contenu de ton fichier
 


Message édité par anapajari le 29-03-2006 à 16:39:27
Reply

Marsh Posté le 29-03-2006 à 16:17:24    

Faut utiliser les content-type (via header()), je crois, pour forcer le navigateur à télécharger le fichier.


Message édité par rufo le 29-03-2006 à 16:18:20
Reply

Marsh Posté le 29-03-2006 à 16:19:09    

exemple avec fichier texte téléchargeable ici:
http://forum.hardware.fr/hardwaref [...] 6705-1.htm

Reply

Marsh Posté le 29-03-2006 à 16:30:28    

Merci a vous trois je look ca dès demain (les fonctionnaire ca part à l'heure :p)

Reply

Marsh Posté le 30-03-2006 à 10:12:22    

Iop! bon, maintenant tout marche sur mon xp avec easy php, le seul problème c'est quand je le met sur mon serveur apache sous NT, il charge il charge mais rien ne se passe, il ne creer pas mon fichier word modifié! visiblement il aime pas le com ! :(

Reply

Marsh Posté le 30-03-2006 à 10:49:26    

il renvoie quoi comme erreur?

Reply

Marsh Posté le 30-03-2006 à 11:21:43    

rufo a écrit :

il renvoie quoi comme erreur?


 
Sur le serveur se passe rien, et sur le client, ca charge! par contre si j'essaye de lancer à partir du serveur, sur le client (qui fait serveur donc la, avec easy php) no problem!!

Reply

Marsh Posté le 31-03-2006 à 07:48:38    

Salut! Nouveau problème, le processus WinWord reste lancé sur le serveur, malgrès le close et le quit!

Reply

Marsh Posté le 31-03-2006 à 10:36:29    

C'est "normal". C'est un bug de la lib COM de php. Je ne sais pas si dans la dernière version de php ce bug a été corrigé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed