Crear y descargar un archivo de word personalizado con php

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 :)

 

 

Compártelo

También te puede interesar...

Comentarios

  • No_avatar_thumb

    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

     

Escribe un comentario

Tienes que estar registrado para poder dejar comentarios.
Accede a tu cuenta o regístrate en NotasWeb.com.
Avatar_241 manuelaguado
en el Ranking


Artículos más vistos del usuario

Últimos artículos del usuario