Creación de un archivo .doc con PHP
Llega tu cliente y no quiere que le generes un PDF, sino un archivo DOC para abrirlo cómodamente con su Word o herramienta similar. ¿Cómo se hace eso? Muy fácil, este código os genera un archivo con texto dentro y lo descarga a tu equipo.
<?php
header(«Content-type: application/vnd.ms-word»);
header(«Content-Disposition: attachment;Filename=documento.doc»);
echo «<html>»;
echo «<meta http-equiv=\»Content-Type\» content=\»text/html; charset=Windows-1252\»>»;
echo «<body>»;
echo «<b>Mi primer documento</b><br />»;
echo «Aquí va todo el texto que querais, en formato HTML</body>»;
echo «</html>»;
?>
** El conjunto de caracteres o charset puede ser también UTF-8, si esa es nuestra codificación en la web, claro
Funciona muy bien, pero tengo una duda, estoy haciendo una carta tipo y necesito forzar un salto de página, ¿se puede hacer?
Buena pregunta. En principio sería muy difícil calcular el salto, a no ser que siempre se usara la misma impresora, y el mismo texto exáctamente, lo que nos permitiría calcular el salto más fácilmente, ya que podríamos hacer algunas pruebas y contar las líneas a insertar para hacer el salto.
Otra solución podría consistir en generar varios documentos .doc para la carta.
Espero que esto te sirva.
Buenas,
Intenta poner un chr(12) = Salto de línia (FF) en código ASCII que lo interpreta a la perfección.
Un saludo
Como Hago para escribir en el Encabezado del documento de Word y también en el pie de Pagina, aunque me es mas Urgente lo del encabezado para poder meter ahí la imagen del membrete de la hoja, Agradezco su colaboración.
Hazlo tal y como se hace un html. Supongo que el problema es que no ve la imagen. Si pones la ruta completa (http://www.dominio.com/imagenes/cabecera.png) en un , debería verse (o sea, tienes que tener las imágenes subidas a un host para que se vean)
como puedo justificar un texto
Dado que se puede definir estilos, yo probaría a utilizar un «style=’text-align: justify;'» en la etiqueta o incluso en el body.
tengo una tabla y necesito k la misma se repita varias veces, es decir una por cada pagina con diferendes datos, como puedo hacerlo.
Como ya comenté a Roberto Ovalle, habría que calcular las líneas que entran en una página e ir contándolas para hacer el salto de línea al cabo de esas líneas. Date cuenta que lo que construyes es una página HTML, con lo que tienes que controlar tú el salto de página.
como hago para que el archivo salga en diseño de impresión no en diseño wed.
Hasta donde yo sé, eso es tema de Word, y ahí no podemos hacer nada.
hola gente, que tal, muy bueno y funciono espectacular
podrian decirme como hago para apaisar o, que es lo mismo, poner en horizontal la pagina
gracias y saludos
Realmente no hay que hacer nada en el código en PHP, simplemente tienes que poner en Word la configuración de página en apaisado.
¿Para crear .docx? Solo agrege la extención pero marca un error al abrir el documento.
No Ángel, este artículo es para crear un .doc, porque el formato que tú dices, el .docx es distinto y no se explica en este artículo cómo se genera. El .docx se basa en Open XML, nada que ver con .doc
Se pueden definir los estilos css perfectamente? necesito el tamaño de mi imágen, que se reduzca, gracias
Si el CSS lo embebes dentro del HTML, sí, se puede. Yo probaría antes con el height y width de la propia etiqueta . Espero que te sirva la solución.
Hola yo quisiera saber como puedo decirle a mi documento que sea tipo carta por defecto?
Eso creo que es algo ya propio de Word, no de programación en PHP