Php et documents word publipostage

didier dany -  
 jamespage -
Bonjour à tous

Je voudrais a partir d'un script php extraire des données d'une base mysql pour faire un courrier individualisé avec word (soit un publipostage avec lettre type par exemple déjà existante). précison : je génère une requete à partir du site distant.

Merci pour votre aide.

didier dany
A voir également:

10 réponses

Marc
 
pour le moment j'ai la solution :
Creer un document word avec des champs style {{NOM}}
le sauver en RTF puis le code PHP suivant (vous pouvez mettre ce code dans une boucle et avec la fonction print de javascript imprimer page par page, je le fait sans probleme !!!
<?php
// Lettre
$f=fopen("./word/Fichier en entree.rtf","r");
$R=fopen("./word/fichier en sortie.doc","w");

while (!feof($f))
{
$ligne=fgets($f,20000);
$Long=strlen($ligne);
$Nouvligne="";
for ($i=$inc;$i<$Long;$i++)
{
if (substr($ligne,$i,4)=="\{\{")
{
$deb=$i;
$var="";
for ($j=$i+4;$j<$Long;$j++)
{
if (substr($ligne,$j,4)=="\}\}")
{
$fin=$j;
break;
}
}
$var=substr($ligne,$deb+4,$fin-$deb-4);
if ($var=="NOM") $Nouvligne.=$Nom_Dusage;
else if ($var=="NOM") $Nouvligne.=$Nom;
else if ($var=="PRENOM") $Nouvligne.=$Prenom;
else if ($var=="ADRESSE") $Nouvligne.=$Ass_Adresse;
else if ($var=="CPL_ADRESSE") $Nouvligne.=$Ass_Adresse_Cmpl;
else if ($var=="CP") $Nouvligne.=$Adresse_CP;
else if ($var=="VILLE") $Nouvligne.=$Adresse_Ville;
else if ($var=="DATE") $Nouvligne.=date("d/m/Y");
else if ($var=="CIV") $Nouvligne.=$Civ;
else $Nouvligne.="???????";
$i=$j+3;
}
else
{
$Nouvligne.=substr($ligne,$i,1);
}
}
fwrite($R,$Nouvligne);
}
fclose($f);
fclose($R);

?>
5
jamespage
 
Slt Marc,

voilà j'aimerai (via un script php) générer un .doc à partir de 2 fichiers :

- template.doc : c'est la mise en forme de mon document final. Avec entre guillement les champs à renseigner.
- fichier.xls : toutes les données que peuvent valoir mes champs.

Avec word si je clique sur fusionner, cela me génère mon fichier word avec le template répété autant de fois qu'il y a de lignes dans mon .xls avec la mise en forme de ce dernier.

J'aimerai que mon code php fasse la même chose (pour l'instant je n'ai généré que le fichier xls avec un export de donnée de puis ma base)

Si tu as une idée et si tu as tout compris ;)

Merci
0
Zhato
 
Ton code est parfait pour ce que je veux faire, cependant j'ai une question : Il vient d'où ton $inc ? C'est quoi ?
0
mpmp93
 
Bonjour,

Une solution très simple que je propose ici:
http://html5.immo-scope.com/index.php?page=php/publiPostageDocumentWord

cordialement
0
jamespage
 
Merci mpmp93 !
0
Blashol
 
écoute, désolé, mais personne n'a de réponse a ta question. en revanche, depuis le temps si tu as avancé sur la question je serais intéressé d'avoir des infos.

:)
0
Titom
 
Salut !

Je cherche a faire la même chose ......
Vas voir sur :

http://www.npds.org/viewtopic.php?topic=2666&forum=5

Y'a un script php qui crée un fichier word (ou excel) à partir d'une requête SQL (qques modif à faire, c marqué dans le forum)

Par contre pour le publipostage, je sais po .....

A+
0
didier dany
 
Bonjour,

Je connais ce script et je l'ai déjà travailler, en fait il n'a aucun interet car il ne marche pas, il a fallu le réécrire.

Je cherche plutôt une solution avec l'insertion de php (comme language hôte dans vba) pour en faire une macro

c'est une idée qui m'est passée par la tête pas forcement bonne.

merci de toute facon c'est sympa

Didier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Titom
 
Salut !

hein ? le script fonctionne très bien, je l'utilise !

Y'a juste 2-3 erreurs de syntaxe.

Par conte, si t'as une solution pour le publipostage ........

A +
Titom
0
didier dany
 
non pour le moment, je n'ai pas de solution

@+
0
Craft
 
J'aimerai également avoir une solution concernant le publipostage en php. merci de votre aide.
0
ddempt Messages postés 24 Date d'inscription   Statut Membre Dernière intervention  
 
Ce code fonctionne mais lorsque l'on veut créer un document avec 100 personnes, je n'arrive pas à avoir 1 seul document .doc qui contient 100 pages.

Avez-vous une idée ?
0
Urza45
 
En php la taille des variables est par défaut limitée à 8 Mo. C'est cela qui limite ton script.
Il faut calculer la taille de ta variable au fur et à mesure et prévoir la création de plusieurs fichiers.
0
koa
 
On peut aussi faire des documents xml. Il suffit d'inventer quelques chaînes types qui devront être parsées avec les données extraites. Par exemple, on enregistre sa lettre au format xml, on récupère la lettre xml avec un script php, on procède au remplacement à l'aide d'une librairie comme simplexml... A chaque enregistrement, on ajoute un saut de page et hop... enregistrement suivant.

* https://xml.developpez.com/
* http://ch2.php.net/simplexml
* http://rep.oio.dk/Microsoft.com/officeschemas/welcome.htm
0
PPER
 
Bonjour impossible d'ouvrir le fichier créé. Quelqu'un saurait-il pourquoi ?
Merci d'avance
0