Php y correspondance de lettres en Word publipostage

didier dany -  
 jamespage -
Hola a todos

Quisiera a partir de un script PHP extraer datos de una base MySQL para hacer una carta personalizada con Word (es decir, una correspondencia con una carta tipo por ejemplo ya existente). Precisión: genero una consulta desde el sitio remoto.

Gracias por su ayuda.

didier dany

10 respuestas

Marc
 
por el momento tengo la solución:
Crear un documento Word con campos estilo {{NOM}}
guardarlo en RTF y luego el siguiente código PHP (pueden colocar este código en un bucle y con la función print de JavaScript imprimir página por página, lo hago sin problema !!!
<?php
// Carta
$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
 
Hola Marc, Aquí va: Quisiera (a través de un script PHP) generar un .doc a partir de 2 archivos: - template.doc: es el formato de mi documento final. Entre comillas los campos a rellenar. - fichier.xls: todos los datos que pueden valer mis campos. Con Word, si hago combinar, me genera mi documento Word con el template repetido tantas veces como haya filas en mi .xls, manteniendo el formato de este último. Quisiera que mi código PHP haga lo mismo (por ahora solo he generado el archivo xls con una exportación de datos desde mi base). Si tienes alguna idea y si has entendido todo ???? Gracias
0
Zhato
 
Tu código es perfecto para lo que quiero hacer, sin embargo tengo una pregunta: ¿De dónde viene tu $inc? ¿Qué es?
0
mpmp93
 
Hola, Una solución muy simple que propongo aquí: http://html5.immo-scope.com/index.php?page=php/publiPostageDocumentWord cordialmente
0
jamespage
 
Gracias mpmp93!
0
Blashol
 
oye, lo siento, pero nadie tiene respuesta a tu pregunta. en cambio, con el tiempo, si has avanzado sobre la cuestión, me interesaría tener información.

:)
0
Titom
 
¡Hola!

Estoy buscando hacer lo mismo ......
Ve a ver:

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

Hay un script PHP que crea un archivo Word (u Excel) a partir de una consulta SQL (algunas modificaciones por hacer, está marcado en el foro)

Sin embargo, para el correo masivo, no lo sé .....

Nos vemos
0
didier dany
 
Hola,

Conozco este script y ya he trabajado con él, de hecho no tiene ningún interés porque no funciona, fue necesario reescribirlo.

Estoy buscando más bien una solución con la inserción de PHP (como lenguaje anfitrión en VBA) para hacer una macro

es una idea que se me ocurrió, no necesariamente buena.

gracias de todas formas, es agradable

Didier
0
Titom
 
¡Hola!

¿eh? ¡El script funciona muy bien, lo uso!

Sólo hay 2-3 errores de sintaxis.

Sin embargo, si tienes una solución para el correo masivo ........

Nos vemos
Titom
0
didier dany
 
no por el momento, no tengo ninguna solución

@+
0
Craft
 
También me gustaría obtener una solución sobre el correo masivo en PHP. gracias por su ayuda.
0
ddempt Mensajes publicados 24 Estado Miembro
 
Este código funciona, pero cuando se quiere crear un documento con 100 personas, no logro obtener un solo documento .doc que contenga 100 páginas. ¿Tiene alguna idea?
0
Urza45
 
En PHP, el tamaño de las variables está limitado por defecto a 8 MB. Eso es lo que limita tu script.
Hay que calcular el tamaño de tu variable a medida que avanza y prever la creación de varios archivos.
0
koa
 
También se pueden hacer documentos xml. Basta con inventar algunas cadenas tipo que deberán ser analizadas con los datos extraídos. Por ejemplo, se guarda su carta en formato xml, se recupera la carta xml con un script php, se procede a la sustitución con una biblioteca como simplexml... En cada registro, se añade un salto de página y listo... registro siguiente.

* https://xml.developpez.com/
* http://ch2.php.net/simplexml
* http://rep.oio.dk/Microsoft.com/officeschemas/welcome.htm
0
PPER
 
Hola, no puedo abrir el archivo creado. ¿Alguien sabría por qué?
Gracias de antemano
0