SlideShare una empresa de Scribd logo
1 de 5
Como generar un archivo DOC desde PHP 
Segunda parte 
NOTA: En la entrega anterior se explicaba como generar un archivo RTF desde PHP 
directamente manipulando el código fuente. 
En esta versión, se amplió el código y se incluyó la generación de una tabla. 
Cabe señalar que el código está bastante explicado y es facil pasarlo a otros lenguajes como 
es ASP o JAVA. 
La idea consiste en generar un archivo de WORD y que este archivo se abra en el 
Microsoft WORD tal como si se tratara de un archivo .DOC, pero en realidad lo estaremos 
creando "al vuelo" desde nuestro programa en PHP. 
Para generar una tabla 
Para generar una tabla en RTF, se siguen los siguientes pasos: 
1. Se indica el margen izquierdo y la posición de la tabla. 
2. Se define la cantidad de Columnas y las características de cada celda (líneas y 
anchura) 
3. Se coloca el encabezado como un renglón con un fuente mas grande y negritas 
4. Se introducen en un ciclo el resto de las celdas 
Cabe mencionar que el ancho de cada celda se determina indicando la posición del bordo 
derecho de la misma. y este se cuenta desde la posición 0 (cero) de la tabla. Por ejemplo si 
quiero tener 3 celdas del mismo tamaño y cada una de 1000 twips definiría los tamaños 
como 1000, 2000 y 3000.y con esto tendré 3 celdas iguales de 1000 cada una. 
<?PHP 
/* Comenzamos a armar el documento */ 
$output="{rtf1"; //<-- Iniciamos un documento RTF 
$output.= "{fs48 Libros publicados}"; //<-
- Texto de tamaño 48 para el Título 
$output.= "par "; //<-- ENTER 
$output.= "{fs30 Material didáctico}"; //<- 
- Texto de tamaño 30 para el Subtítulo 
$output.= "par "; //<-- ENTER 
$output.= "par "; //<-- ENTER 
/* INICIO DE LA TABLA */ 
$output.= "{ "; //<-- Inicio de la tabla 
$output.= "trgaph70"; //<- 
- márgenes izquierdo y derecho de las celdas=70 
$output.= "trleft-10"; // <- 
- Posición izquierda la primera celda = -10 
/* Definición de las celdas de datos. Se definen 4 columna 
s */ 
$output.= " 
clbrdrlbrdrw10brdrs 
clbrdrtbrdrw10brdrs 
clbrdrrbrdrw10brdrs 
clbrdrbbrdrw10brdrs 
cellx500 
clbrdrlbrdrw10brdrs 
clbrdrtbrdrw10brdrs 
clbrdrrbrdrw10brdrs 
clbrdrbbrdrw10brdrs 
cellx2500 
clbrdrlbrdrw10brdrs 
clbrdrtbrdrw10brdrs 
clbrdrrbrdrw10brdrs 
clbrdrbbrdrw10brdrs 
cellx5000 
clbrdrlbrdrw10brdrs 
clbrdrtbrdrw10brdrs 
clbrdrrbrdrw10brdrs 
clbrdrbbrdrw10brdrs 
cellx8700 
";
/*Introducción de los títulos en el primer renglón*/ 
$output.= "{fs24b "; //<- 
- Fuente de tamaño 24 y en negrita 
$output.= " 
No cell 
Título cell 
Autor cell 
Descripción cell 
}"; 
$output.= " row "; //<-- Fin del renglón de encabezado 
/* Introducción de los datos */ 
$datos= array(); 
$datos[]= array("1", "PHP para tontos" , 
"Brizuela, Guillermina" , 
"Este es un libro ficticio utilizad 
o como Demo"); 
$datos[]= array("2", "La inversión prudente" , 
"Luis Carlos Jemio" , 
"Impacto del bonosol sobre la familia 
, la equidad social."); 
$datos[]= array("3", "Diseño de proyectos de tecnología ed 
ucativa" , 
"Victor de la Rocha" , 
"Con una propuesta totalmente visual, 
el video se convierte en ..."); 
foreach($datos as $v) 
{ 
$output.= " {$v[0]}cell {$v[1]}cell {$v[2]}cell {$v[ 
3]}cell n"; 
$output.= "row "; //<-- Fin del renglón 
} 
$output.= "} "; //<-- fin de la tabla 
$output.= "par "; //<-- ENTER 
$output.="}"; //<-- Terminador del RTF 
/* En los encabezados indicamos que se trata de un document 
o de MS-WORD 
y en el nombre de archivo le ponemos la extensión RTF.
*/ 
header('Content-type: application/msword'); 
header('Content- 
Disposition: inline; filename=ejemplo1.rtf'); 
/* Enviamos el documento completo a la salida */ 
echo $output; 
?> 
Como resultado de este código nos parecerá una ventanita como la siguiente 
Y si elegimos "guardar" nos lo guardará como archivo con el nombre ejemplo2.rtf y si 
elegimos abrir con Microsoft Word nos invocará al mismo y nos aparecerá como se ve en 
la siguiente imagen
Como generar un archivo doc desde php

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Creación de bases de datos en sql server
Creación de bases de datos en sql serverCreación de bases de datos en sql server
Creación de bases de datos en sql server
 
Trabajo de visual basic
Trabajo de visual basicTrabajo de visual basic
Trabajo de visual basic
 
PhpLab06
PhpLab06PhpLab06
PhpLab06
 
Tarea sesion 3 programación web
Tarea sesion 3 programación webTarea sesion 3 programación web
Tarea sesion 3 programación web
 
Backdoors PHP y ofuscación
Backdoors PHP y ofuscaciónBackdoors PHP y ofuscación
Backdoors PHP y ofuscación
 
PROGRAMACION EN Php
PROGRAMACION EN Php PROGRAMACION EN Php
PROGRAMACION EN Php
 
BN 02. Fondo único
BN 02. Fondo únicoBN 02. Fondo único
BN 02. Fondo único
 
Guias jfksoft para crear una base MYSQL y una tabla
Guias jfksoft para crear una base MYSQL y  una tablaGuias jfksoft para crear una base MYSQL y  una tabla
Guias jfksoft para crear una base MYSQL y una tabla
 
Solucion Taller Uno
Solucion Taller UnoSolucion Taller Uno
Solucion Taller Uno
 
Practica web de la sesión 5
Practica web de la sesión 5Practica web de la sesión 5
Practica web de la sesión 5
 
Tarea 4.
Tarea 4.Tarea 4.
Tarea 4.
 
L of C 02. Fondo único
L of C 02. Fondo únicoL of C 02. Fondo único
L of C 02. Fondo único
 
Funciones del registro
Funciones del registroFunciones del registro
Funciones del registro
 
Funciones del registro
Funciones del registroFunciones del registro
Funciones del registro
 
Fichero de estructuras
Fichero de estructurasFichero de estructuras
Fichero de estructuras
 
Comandos sql fundamentos de bases de datos
Comandos sql fundamentos de bases de datosComandos sql fundamentos de bases de datos
Comandos sql fundamentos de bases de datos
 
Tarea sesion3 karla
Tarea sesion3 karlaTarea sesion3 karla
Tarea sesion3 karla
 
Rebeca 04. Fusión fondos - Ibermarc
Rebeca 04. Fusión fondos - IbermarcRebeca 04. Fusión fondos - Ibermarc
Rebeca 04. Fusión fondos - Ibermarc
 
Mysql
MysqlMysql
Mysql
 
Funcion
FuncionFuncion
Funcion
 

Destacado

Destacado (6)

政府情報アクセスをめぐる話題を中心に(古賀崇;IFLA2014年リヨン大会報告)
政府情報アクセスをめぐる話題を中心に(古賀崇;IFLA2014年リヨン大会報告)政府情報アクセスをめぐる話題を中心に(古賀崇;IFLA2014年リヨン大会報告)
政府情報アクセスをめぐる話題を中心に(古賀崇;IFLA2014年リヨン大会報告)
 
Supersonicos
SupersonicosSupersonicos
Supersonicos
 
Ilhadozeca3
Ilhadozeca3Ilhadozeca3
Ilhadozeca3
 
Exp.
Exp.Exp.
Exp.
 
Imagínese Usted Sr Director
Imagínese Usted Sr DirectorImagínese Usted Sr Director
Imagínese Usted Sr Director
 
Diapositivas de etica_empresarial
Diapositivas de etica_empresarialDiapositivas de etica_empresarial
Diapositivas de etica_empresarial
 

Similar a Como generar un archivo doc desde php

Similar a Como generar un archivo doc desde php (20)

Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicas
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Codigoparacrearlabasededatos
Codigoparacrearlabasededatos Codigoparacrearlabasededatos
Codigoparacrearlabasededatos
 
Práctica SQL en MYSQL
Práctica SQL en MYSQLPráctica SQL en MYSQL
Práctica SQL en MYSQL
 
Programacion php
Programacion phpProgramacion php
Programacion php
 
Especialista Web J9 Php
Especialista Web J9  PhpEspecialista Web J9  Php
Especialista Web J9 Php
 
Ejercicios resueltos con Python
Ejercicios resueltos con PythonEjercicios resueltos con Python
Ejercicios resueltos con Python
 
Generador codigo
Generador codigoGenerador codigo
Generador codigo
 
Curso php dia2
Curso php dia2Curso php dia2
Curso php dia2
 
Php
PhpPhp
Php
 
Python Tutorial Presentation
Python Tutorial PresentationPython Tutorial Presentation
Python Tutorial Presentation
 
Clases de php
Clases de phpClases de php
Clases de php
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
 
Manual de usuario xcell48 v1.1
Manual de usuario xcell48 v1.1Manual de usuario xcell48 v1.1
Manual de usuario xcell48 v1.1
 
Comandos html
Comandos htmlComandos html
Comandos html
 
Programación de código
Programación de códigoProgramación de código
Programación de código
 
Apuntes php
Apuntes phpApuntes php
Apuntes php
 
Guia N3 Proyectos Web Php Css, Js
Guia N3   Proyectos Web   Php Css, JsGuia N3   Proyectos Web   Php Css, Js
Guia N3 Proyectos Web Php Css, Js
 
Colegio+de+estudios+cientificos+y+tecnologicos+del+estado+de+mexico
Colegio+de+estudios+cientificos+y+tecnologicos+del+estado+de+mexicoColegio+de+estudios+cientificos+y+tecnologicos+del+estado+de+mexico
Colegio+de+estudios+cientificos+y+tecnologicos+del+estado+de+mexico
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 

Último

PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjjPPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjjNachisRamos
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdfTIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdfLUZMARIAAYALALOPEZ
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucioneschorantina325
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 

Último (7)

PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjjPPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
PPT-HISTORIA-6°-ABC.pptxjjjjjjjjjjjjjjjjjjjjjj
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdfTIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
TIPOS DE LA PSICOPATOLOGÍA DE LA PERCEPCIÓN.pdf
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disoluciones
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 

Como generar un archivo doc desde php

  • 1. Como generar un archivo DOC desde PHP Segunda parte NOTA: En la entrega anterior se explicaba como generar un archivo RTF desde PHP directamente manipulando el código fuente. En esta versión, se amplió el código y se incluyó la generación de una tabla. Cabe señalar que el código está bastante explicado y es facil pasarlo a otros lenguajes como es ASP o JAVA. La idea consiste en generar un archivo de WORD y que este archivo se abra en el Microsoft WORD tal como si se tratara de un archivo .DOC, pero en realidad lo estaremos creando "al vuelo" desde nuestro programa en PHP. Para generar una tabla Para generar una tabla en RTF, se siguen los siguientes pasos: 1. Se indica el margen izquierdo y la posición de la tabla. 2. Se define la cantidad de Columnas y las características de cada celda (líneas y anchura) 3. Se coloca el encabezado como un renglón con un fuente mas grande y negritas 4. Se introducen en un ciclo el resto de las celdas Cabe mencionar que el ancho de cada celda se determina indicando la posición del bordo derecho de la misma. y este se cuenta desde la posición 0 (cero) de la tabla. Por ejemplo si quiero tener 3 celdas del mismo tamaño y cada una de 1000 twips definiría los tamaños como 1000, 2000 y 3000.y con esto tendré 3 celdas iguales de 1000 cada una. <?PHP /* Comenzamos a armar el documento */ $output="{rtf1"; //<-- Iniciamos un documento RTF $output.= "{fs48 Libros publicados}"; //<-
  • 2. - Texto de tamaño 48 para el Título $output.= "par "; //<-- ENTER $output.= "{fs30 Material didáctico}"; //<- - Texto de tamaño 30 para el Subtítulo $output.= "par "; //<-- ENTER $output.= "par "; //<-- ENTER /* INICIO DE LA TABLA */ $output.= "{ "; //<-- Inicio de la tabla $output.= "trgaph70"; //<- - márgenes izquierdo y derecho de las celdas=70 $output.= "trleft-10"; // <- - Posición izquierda la primera celda = -10 /* Definición de las celdas de datos. Se definen 4 columna s */ $output.= " clbrdrlbrdrw10brdrs clbrdrtbrdrw10brdrs clbrdrrbrdrw10brdrs clbrdrbbrdrw10brdrs cellx500 clbrdrlbrdrw10brdrs clbrdrtbrdrw10brdrs clbrdrrbrdrw10brdrs clbrdrbbrdrw10brdrs cellx2500 clbrdrlbrdrw10brdrs clbrdrtbrdrw10brdrs clbrdrrbrdrw10brdrs clbrdrbbrdrw10brdrs cellx5000 clbrdrlbrdrw10brdrs clbrdrtbrdrw10brdrs clbrdrrbrdrw10brdrs clbrdrbbrdrw10brdrs cellx8700 ";
  • 3. /*Introducción de los títulos en el primer renglón*/ $output.= "{fs24b "; //<- - Fuente de tamaño 24 y en negrita $output.= " No cell Título cell Autor cell Descripción cell }"; $output.= " row "; //<-- Fin del renglón de encabezado /* Introducción de los datos */ $datos= array(); $datos[]= array("1", "PHP para tontos" , "Brizuela, Guillermina" , "Este es un libro ficticio utilizad o como Demo"); $datos[]= array("2", "La inversión prudente" , "Luis Carlos Jemio" , "Impacto del bonosol sobre la familia , la equidad social."); $datos[]= array("3", "Diseño de proyectos de tecnología ed ucativa" , "Victor de la Rocha" , "Con una propuesta totalmente visual, el video se convierte en ..."); foreach($datos as $v) { $output.= " {$v[0]}cell {$v[1]}cell {$v[2]}cell {$v[ 3]}cell n"; $output.= "row "; //<-- Fin del renglón } $output.= "} "; //<-- fin de la tabla $output.= "par "; //<-- ENTER $output.="}"; //<-- Terminador del RTF /* En los encabezados indicamos que se trata de un document o de MS-WORD y en el nombre de archivo le ponemos la extensión RTF.
  • 4. */ header('Content-type: application/msword'); header('Content- Disposition: inline; filename=ejemplo1.rtf'); /* Enviamos el documento completo a la salida */ echo $output; ?> Como resultado de este código nos parecerá una ventanita como la siguiente Y si elegimos "guardar" nos lo guardará como archivo con el nombre ejemplo2.rtf y si elegimos abrir con Microsoft Word nos invocará al mismo y nos aparecerá como se ve en la siguiente imagen