Saltar al contenido

Generar documentos de Word con PHP

PHPWord es una biblioteca de PHP que le permite leer y escribir documentos de Microsoft Word (y algunos formatos de archivo adicionales como RTF, openXML y HTML) PHPWord es muy útil para  Generar documentos de Word con PHP o leer uno existente en su aplicación web. Asi que es hora de que apliques tus conocimientos con phpword y los uses en tus diferentes proyectos.

En este artículo, cubriré sobre la configuración y el tutorial de hello world. Luego, hablaremos sobre otras aplicaciones, como la creación de docx desde HTML.

Generar documentos de Word con PHP

Generar documentos de Word con PHP

Microsoft Word es una aplicación de procesamiento de texto ampliamente utilizada que forma parte del conjunto de herramientas de productividad de Microsoft Office. Es utilizado para crear, editar y dar formato a documentos de texto, como cartas, informes, currículos, y otros tipos de documentos escritos. Word ofrece una amplia gama de funciones, como herramientas de formato de texto, opciones de diseño de página, revisión de ortografía y gramática, inserción de imágenes y gráficos, y muchas otras características que permiten a los usuarios crear documentos profesionales y bien formateados.

Te puede interesar:   ComboBox 3 niveles Continente Pais y Ciudad en Php y Mysql

Es una herramienta ampliamente utilizada en oficinas, entornos educativos y en muchos otros lugares donde se requiere la creación y edición de documentos escritos. Disponinle tambien en office 365 suite de microsoft y en sus otras versiones.

Antes de comenzar, deberá instalar PHPWord a través de Composer  (Composer es una herramienta de administración de dependencias para PHP. Como npm para Node.js) Agregue el código a continuación a su archivo composer.json.

{
    "require": {
       "phpoffice/phpword": "v0.13.*"
    }
}

A continuación, abra el símbolo del sistema y escriba a continuación para activar la instalación.

composer install

Composer llevará PHPWord y todas sus dependencias a la ubicación de su proyecto. Ahora estamos listos para seguir adelante con el código. Por ejemplo, aquí están los pasos si desea crear un nuevo documento docx con el texto «Hola Mundo».

Te puede interesar:   Sistema de Inventario en PHP y MYSQL

Primero, cargue PHPWord usando autoload.php ubicado en vendor/autoload.php.

require_once 'vendor/autoload.php';

Luego crea un nuevo objeto PHPWord. Esto representará su archivo de documento.

$phpWord = new \PhpOffice\PhpWord\PhpWord();

La estructura del documento de Word se separa en secciones. El texto o el elemento no se pueden agregar directamente al documento sin la sección. Así que vamos a añadir uno.

$section = $phpWord->addSection();

Luego cree un objeto de fuente para personalizar un estilo de fuente, luego asigne el objeto de fuente a la sección.

$fontStyle = new \PhpOffice\PhpWord\Style\Font();
$fontStyle->setBold(true);
$fontStyle->setName('Arial');
$fontStyle->setSize(16);
$myTextElement = $section->addText('Hello World');
$myTextElement->setFontStyle($fontStyle);

Y, por último, envíe el documento al navegador web, que aparecerá un cuadro de diálogo de descarga / Guardar como.

Nota importante : el archivo php completo no debe tener ningún eco, impresión ni ningún tipo de mensaje de visualización o dañará el archivo docx generado.

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('helloWorld.docx');

Ahora eso es lo básico. Otro ejemplo interesante es crear un archivo docx desde HTML.

Te puede interesar:   4 malvadas bromas con JavaScript para tus amigos

Supongamos que ya tiene un fragmento de HTML que desea colocar en el archivo docx, deberá convertirlo en una cadena HTML con javascript y luego pasarlo a PHPWord a través del formulario POST. A continuación se muestra un código de ejemplo usando jQuery.

<form method="post" action="gendocx.php">
 <input type="hidden" name="htmlstring" id="htmlstring" value="">
 <input type="submit" id="MyButton" value="Generate Docx">
</form>
...
<script>
$('#myButton').click(function(){
   //get your Div HTML tring
   var s = $('#myHTMLDiv').html();
   $('#htmlstring').val(s);
});
</script>

Luego, en gendocx.php tomaremos una cadena HTML entrante y la pondremos en un documento docx como este.

require_once 'vendor/autoload.php';
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $_POST['htmlstring']);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment;filename="test.docx"');
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('php://output');

Tenemos más tutoriales para ti:

Sistema de inventario en php y MySQL open source
Obtener ubicación actual JavaScript
Vanilla js qué es
JavaScript guardar datos en txt
Tarjeta de red en modo promiscuo
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
Comparte