Aveces es necesario ofrecer datos de nuestra base de datos en algun formato para descargar, pero además de esto también se le debe ofrecer al usuario un archivo que lo pueda leer en su equipo para editar o imprimir, es entonces cuando el formato de word nos sirve para este caso, el truco para esto se basa en que no se trata de un archivo de word .doc sino de un archivo rtf con la extension cambiada.
Para hacer esto será necesario hacer nuastro archivo rtf usando para ello Microsoft Word u Open Office y guardando este como rtf, la diferencia rádica en que el archivo de rtf lo podemos editar con algun editor de texto, a mi me gusta Scite o Notepad++ pero le puede servir cualquiera, bien para esto será necesario que en el archivo rtf que hemos creado usemos palabras clave para identificar que es lo que vamos a hacer dinamico. por ejemplo si vamos a hacer descargable una hoja con un estado de cuenta pondremos "nombre: USUARIO" en donde USUARIO será la palabra a cambiar por nuestra variable y así será mas fácil identificarla cuando abramos el archivo rtf en scite ejemplo:
ORIGINAL:
\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082
{\b\f1\fs32\insrsid14964550 PROYECTO}{\b\f1\fs32\insrsid14964550\charrsid12607154
\par }\pard \s15\ql
\li0\ri0\widctlpar\tqc\tx4252\tqr\tx8504\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0
{\f1\insrsid14964550\charrsid12607154
\par }{\f1\fs26\insrsid14964550\charrsid2240461 Área:$espacio $espacio $area}{\f1\fs26\insrsid14964550\charrsid2240461
\par RESPONSABLE}{\f1\fs26\insrsid14964550\charrsid2240461
\par ENLACE}{\f1\fs26\insrsid14964550\charrsid2240461
MODIFICADO:
\fs24\lang3082\langfe3082\cgrid\langnp3082\langfenp3082 {\b\f1\fs32\insrsid14964550 $nombre_proyecto}{\b\f1\fs32\insrsid14964550\charrsid12607154
\par }\pard \s15\ql \li0\ri0\widctlpar\tqc\tx4252\tqr\tx8504\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\f1\insrsid14964550\charrsid12607154
\par }{\f1\fs26\insrsid14964550\charrsid2240461 Área:$espacio $espacio $area}{\f1\fs26\insrsid14964550\charrsid2240461
\par Responsable $espacio de $espacio área: $espacio $responsable}{\f1\fs26\insrsid14964550\charrsid2240461
\par Enlace $espacio de $espacio área: $espacio $enlace}{\f1\fs26\insrsid14964550\charrsid2240461
En el anterior ejemplo, no nos importa el contenido del rtf que de hecho no entiendo ni medio código partido por la mitad, pero si nos importa las variables que usaremos
PROYECTO > $nombre_proyecto,
RESPONSABLE > Responsable $espacio de $espacio área: $espacio $responsable
ENLACE > Enlace $espacio de $espacio área: $espacio $enlace
Por lo que al poner nuestras palabras clave identificamos muy rapido donde iran nuestras variables.
Bien después de cambiar todas nuestras palabras clave por nuestras variables guardamos el archivo rtf sin modificar la extensión y lo guardamos en nuestro servidor, en el mismo directorio creamos el archivo php que hará la magia.
Con esto ya habremos creado nuestro documento con los datos que le hemos ingresado ahora nos toca hacerlo descargable:
Bien con esto ultimo creamos el archivo con extension doc y le metemos el contenido del rtf, también creamos una carpeta temporal para su descarga y al final después de su descarga borramos tanto el archivo como la carpeta.
Espero que no sea muy tediosa la explicación y claro que si tienen alguna duda pueden preguntar :)
israeldavid - 02/02/2011 21:37:23
Saludos, muy bueno el codigo, sin embargo tengo problema cuando el RTF tiene tildes (acentos) y ñ, salen unos caracteres extraños como puedo hacer que se muestren correcatamente?
Muchas Gracias