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

Bibliothèques et frameworks PHP Discussion :

[COM] Word et PHP


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Par défaut [COM] Word et PHP
    bonjour,

    j'ai un problème avec un script que j'ai récupéré sur le net pour éditer un document word avec des vides que je voudrais remplir par des champs d'une base mysql,
    j'ai récupéré ce script à l'adresse
    http://www.phpbuilder.com/columns/yu...3?print_mode=1
    je l'ai à peine modifié et ça donne
    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
    25
    26
    27
    <?php
    //1. Instanciate Word
    $word = new COM("word.application") or die("Unable to instantiate Word");
    //2. specify the MS Word template document (with Bookmark TODAYDATE inside)
    $template_file = "C:\wamp\www\appli_contentieux\lettre1.doc";
    //3. open the template document
    echo "ouverture fichier:<br>".$fichier."<br>";
    $word->Documents->Open($template_file);
     
     
    //5. get the bookmark and create a new MS Word Range (to enable text substitution)
    $bookmarkname = "nom";
    $objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);
    $range = $objBookmark->Range;
    //6. now substitute the bookmark with actual value
    $range->Text = "moi";
     
    //$word->ActiveDocument->Bookmarks("nom")->range->text="MOI";
    //7. save the template as a new document 
    $new_file = "C:\wamp\www\appli_contentieux\new_lettre1.doc";
    $word->Documents[1]->SaveAs($new_file);
    echo "sauvegarde fichier word<br>";
    //8. free the object
    $word->Quit();
    $word->Release();
    $word = null;
    ?>
    il a marché 3 fois correctement, ensuite j'ai ajouté le code pour récupérer les valeurs de mes champs (select de base) et ça ne fonctionne plus, même avec un retour à la version de base du fichier

    le fichier new_lettre1.doc exsite déjà dans le répertoire et les bookmarks aussi dans le fichier lettre1.doc

    il ne m'affiche rien dans la page mais au bout d'un moment j'arrête winword.exe dans le gestionnaire des tâches windows et il m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ouverture fichier word
    C:\wamp\www\appli_contentieux\lettre1.doc
     
    Fatal error: Maximum execution time of 30 seconds exceeded in :
    \wamp\www\appli_contentieux\lettre1.php on line 43
    il ne m'affiche pas sauvegarde fichier word, il doit sûrement avoir du mal à ouvir le fichier, j'ai éssayé de redémarrer au cas où un processus le gênerait mais ça change rien
    j'ai essayé tout ce que je pouvais mais là je vois pas ce que je peux faire de plus,
    savez vous comment je peux faire pour résoudre mon problème ou pour arrêter le script en cours et voir ce qui se passe derrière?
    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Par défaut réponse
    je crois avoir une partie de solution mais c'est pas très réjouissant

    ce serait un bug de wamp
    http://www.wampserver.com/phorum/rea...&i=3730&t=3730

    mais pourquoi aurait-il marché 3 fois????????

    si quelqu'un a une bonne solution... ça ferait du bien, je suis là dessus depuis le milieu de la matinée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Par défaut changement
    bonjour,

    après avoir cherché en vain une solution, je me suis réorienté vers le format rtf mais je suis tombé sur un deuxième os:

    j'ouvre mon fichier rtf
    je remplace les xxxmotxxx par mes variables
    je réécris mon fichier
    dès que je veux réécrire mon fichier il me renvoie une erreur
    j'affiche ce que j'essaie de rentrer dans mon fwrite et j'ai tout le formatage rtf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1036\deflangfe1036{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;}
    l'erreur qu'il me renvoie est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: fwrite(): supplied argument is not a valid stream resource
    j'ai même essayé de remplacer les { par des [ les \ par \\ ça ne change rien

    voici le code que j'utilise en simplifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $fichier="C:\wamp\www\mon_appli\lettre.rtf";
    $new_fichier="C:\wamp\www\mon_appli\lettre1.rtf";
    $fp = fopen($fichier, "r+"); 
    while (!feof($fp)){
    $ligne = fgets($fp);
    $ligne=str_replace("xxxadressexxx", $adr, $ligne );
    fwrite($new_fichier,$ligne);
    }
    qu'est ce que je peux faire pour résoudre ça???? (j'ai vu qu'il exsitait une classe php2rtf mais je ne suis pas sûr de l'avoir bien comprise )

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Par défaut autant pour moi,
    j'arrête là, le problème c'est moi en fait je faisais le fwrite avec le nom du fichier pas avec le fopen()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [COM] Ouvrir un fichier .rtf (word) en php
    Par fdu63 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 06/06/2007, 12h38
  2. [COM] Ouvrir Word en php
    Par lecail65 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 21/08/2006, 16h58
  3. [COM] Ouvrir un fichier Word dans PHP
    Par TomZ dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 24/03/2006, 14h58
  4. [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