IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

com word application


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut com word application
    Bonjour,

    je tente de modifier un fichier word sur le serveur
    la methode COM est nouvelle pour moi j'aurais besoin de conseils
    voici le code utilisé :
    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
    23
    24
     
    //1. Instanciate Word
    //com_load_typelib('Word.Application');
    $word = @new COM("word.application") or die("Unable to instantiate Word");
     
    //2. specify the MS Word template document (with Bookmark TODAYDATE inside)
    $template_file = $_SERVER['DOCUMENT_ROOT']."\test\test.doc";
    //3. open the template document
    $word->Documents->Open($template_file);
    //4. get the current date MM/DD/YYYY
    $current_date = date("m/d/Y");
    //5. get the bookmark and create a new MS Word Range (to enable text substitution)
    $bookmarkname = "TODAYDATE";
    $objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);
    $range = $objBookmark->Range;
    //6. now substitute the bookmark with actual value
    $range->Text = $current_date;
    //7. save the template as a new document (c:/reminder_new.doc)
    $new_file = $_SERVER['DOCUMENT_ROOT']."\test\test.doc";
    $word->Documents[1]->SaveAs($new_file);
    //8. free the object
    $word->Quit();
    $word->Release();
    $word = null;
    avec l'erreur suivante
    PHP Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> Commande non disponible : aucun document n'est ouvert.' in D:\WWW\emm\www\test\test.php:27
    Stack trace:
    #0 D:\WWW\emm\www\test\test.php(27): unknown()
    #1 {main}
    thrown in D:\WWW\emm\www\test\test.php on line 27
    cela concerne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);
    Merci de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    D'apres l'erreur ton ouverture de document n'a pas fonctionné.

  3. #3
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonsoir,

    Que renvoit ce code ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var_dump(file_exists($template_file));

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    Cela me renvoit : bool(false) quand j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template_file = "D:\WWW\emm\www\test\test.doc";
    et true quand j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template_file = "D:/WWW/emm/www/test/test.doc";
    mais une erreur :
    FastCGI Error survient avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $word->Documents->Open($template_file);
    N'y a t il pas un modification à faire au niveau du php.ini ou au niveau de iis ?

    Merci

  5. #5
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    salut,

    tu dois échapper le charactère "\" si tu tiens à l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template_file = "D:\\WWW\\emm\\www\\test\\test.doc";

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Points : 177
    Points
    177
    Par défaut
    Merci

    en utilisant
    $template_file = "D://WWW//emm//www//test//test.doc";
    j'ai une erreur FastCGI si j'ai coché "l'utilisateur executant" dans :
    dcomcnfg
    configuration DCOM
    propriete du document microsoft office
    onglet identité

    par contre si je coche "l'utilisateur interactif" j'ai l'erreur suivante :

    PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `word.application': Le processus serveur n'a pas pu être démarré car l'identité configurée n'est pas correcte. Vérifiez le nom d'utilisateur et le mot de passe. ' in D:\WWW\emm\www\test\test.php:27 Stack trace: #0 D:\WWW\emm\www\test\test.php(27): com->com('word.applicatio...') #1 {main} thrown in D:\WWW\emm\www\test\test.php on line 27
    Merci de votre aide

  7. #7
    Membre régulier Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Points : 117
    Points
    117
    Par défaut
    Bonjour,

    comme l'a fait remarquer Thes32, il faut gérer l'échappement, tu n'as pas fait le bon.

    / <- environnement linux/unix, pas d'échapemment
    \ <- environnement windows, échappement nécessaire

    essaie donc en échappant correctement comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $template_file = "D:\\WWW\\emm\\www\\test\\test.doc";
    Ça devrait être mieux

Discussions similaires

  1. [COM] Failed to create COM object word.application: Accès refusé
    Par groovyroe dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/05/2009, 18h46
  2. Documentation pour utilisation COM / Word
    Par Sangdrax1604 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 22/11/2006, 10h04
  3. [vba-access] probleme avec word.application
    Par realthunderbolt dans le forum Access
    Réponses: 3
    Dernier message: 23/08/2006, 20h02
  4. [COM] Documentation fonctionnalités "objet COM" / word
    Par Finidrigoler dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/08/2006, 17h27
  5. [VB] Problème composants COM Word
    Par Vince dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/12/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo