Modifier fichier Word en PHP

Seb31 Messages postés 24 Statut Membre -  
 tx87 -
Salut à ts,
Je remplie un formulaire et je voudrais pouvoir insérer certaines valeurs ds un fichier Word existant.
Le pb est que je dois insérer les valeurs à des endroits bien précis dans le .doc!
Je vois pas comment faire! merci de votre aide...

Seb
Ne pas avoir de but est aussi un but. 

3 réponses

  1. LongJohnSilver Messages postés 1 Statut Membre 3
     
    Bonjour
    J'ai un peu le même problème...

    J'utilise COM pour créer des docs Word à la volée.
    Voici un bout de code:

    $word = new COM("word.application") or die("Can't start Word !");
    // pour ouvrir l'application au premier plan, utiliser 1 (vrai)
    $word->Visible = 1;

    // créer/loader un nouveau document dans Word
    //$word->Documents->Open("D:/temp/test.doc");
    $word->Documents->Add();

    // ajouter du texte au nouveau document
    $content = "Insertion de simple texte ici\n\nCeci commence une nouvelle ligne de paragraphe.";
    $word->Selection->TypeText("$content");

    // enregistrer le document
    $word->Documents[1]->SaveAs("D:/temp/test.doc");

    // fermer la connexion au composant COM
    $word->Quit();
    $word = null;
    unset($word);

    Mon problème est de pouvoir rechercher/remplacer du texte sur la totalité d'un document, (hors bookmark).
    J'ai essayé ceci:

    $word->Selection->Find->ClearFormatting;
    $word->Selection->Find->Replacement->ClearFormatting;
    $word->Selection->Find->Text = "texte " ;
    $word->Selection->Find->Replacement->Text = "phrase ";
    $word->Selection->Find->Replacement->Font->Color = 16711680; # 'wdColorBlue';
    $word->Selection->Find->Forward = 'True' ;
    $word->Selection->Find->Wrap = '1'; #'wdFindContinue';
    $word->Selection->Find->Format = 'False' ;
    $word->Selection->Find->MatchCase = 'False';
    $word->Selection->Find->MatchWholeWord = 'False';
    $word->Selection->Find->MatchWildcards = 'False' ;
    $word->Selection->Find->MatchSoundsLike = 'False' ;
    $word->Selection->Find->MatchAllWordForms = 'False';
    $word->Selection->Find->Execute->Replace->Word->WdReplace->WdReplaceAll = '2';#'wdReplaceAll';

    Mais ça ne fonctionne pas...
    Si quelqu'un a une idée, elle est bienvenue...
    Merci d'avance
    3
    1. tx87
       
      As tu trouvé une solution à ton problème? Cela m'aiderai énormément
      0
  2. esox_ch Messages postés 770 Statut Membre 49
     
    Je crois que tu as pas le choix , tu vas devoir passer pas xml ... En tout cas j'ai deja connu des gens qui generent des ficher word a partir de xml..

    Eternel Questionneur. Seul et Unique membre de la : SPdLM
    => Société Protectrice des Langages Maltraités
    -1
    1. Ghislain
       
      salut
      pourrais tu m en dire plus sur le xml qui génére des fichier word

      merci a+
      ghimarie@hotmail.com
      0
  3. kalamit
     
    Salut,
    En fait, ca serait possible, mais il te faudrait la description de l'entete d'un fichier word. Je crois pas que ce soit "open source", ca (contrairement à un pdf)...
    Maintenant, j'ai pas de solution en php, mais peut etre qu'en xml...

    Kalamit,
    Parle à ma culasse, mon carter est malade. :)
    0