Vamos a ver como generar un documento PDF desde PHP con HTML2PDF, una librería muy sencilla y útil para esta tarea. Hay varias más como FPDF o DOMPDF, pero HTML2PDF es la que menos problemas me ha dado.
La ventaja que tiene frente a otras es que nos permite posicionar elementos y darle estilos al PDF mediante HTML y CSS, lo cual es mucho mas sencillo que utilizar muchísimos métodos para generar un documento con la apariencia que nos interesa(como es el caso de FPDF).
He preparado un vídeo en el que te eseño como hacerlo todo paso a paso:
Podemos descargar HTML2PDF desde su web oficial, donde también encontraremos ejemplos de uso.
Empezamos con el ejemplo:
<?php if(isset($_POST["generar"])){ //Incluimos la librería require_once 'html2pdf_v4.03/html2pdf.class.php'; //Recogemos el contenido de la vista ob_start(); require_once 'vistaImprimir.php'; $html=ob_get_clean(); //Pasamos esa vista a PDF //Le indicamos el tipo de hoja y la codificación de caracteres $mipdf=new HTML2PDF('P','A4','es','true','UTF-8'); //Escribimos el contenido en el PDF $mipdf->writeHTML($html); //Generamos el PDF $mipdf->Output('PdfGeneradoPHP.pdf'); } ?> <form action="" method="POST"> <input type="submit" value="Generar PDF" name="generar"/> </form>
Este fichero será del que se sacará la información para generar el documento pdf.
<!DOCTYPE HTML> <html lang="es"> <head> <meta charset="UTF-8"/> <title>Generar PDF con PHP</title> <style type="text/css"> #cabecera{ background:#eee; padding:20px; } h2,h3{ float:left; } #cabecera img{ width: 140px; float:right; } </style> </head> <body> <div id="cabecera"> <img src="php.png" /> <h2>Este PDF ha sido generado desde PHP</h2> <h3>Victor Robles - <a href="http://victorroblesweb.es"> victorroblesweb.es </a> </h3> </div> <p>Lista ordenada: <ol> <li>PHP</li> <li>Python</li> <li>Ruby</li> <li>Java</li> </ol> </p> </body> </html>
28 enero, 2017
me manda [ERROR] It seems that HTML2PDF dependencies are not installed… you must install thems with `composer install`
16 febrero, 2017
[ERROR] It seems that HTML2PDF dependencies are not installed… you must install thems with `composer install`
14 junio, 2017
Como puedo enviar variables desde una pagina y recibirla en la que necesito convertirla a pdf??? gracias
5 octubre, 2017
aunque es tarde la respuesta, puedes enviar desde ajax las variables mediante get al link php y para generar la consulta y pdf, devolviendo el pdf al formulario y recibiéndolo nuevamente para su descarga
8 noviembre, 2017
Hola, si tengo una página php que realiza una consulta a la bd y rellena una tabla, cómo se hace para pasar esa consulta dinámica y que genere el pdf? Probé algo como:
$mipdf->writeHTML(‘http://localhost:82/html2pdf/facturadup/index.php?c=Factura&a=Crud&id=11370’);
pero genera es la cadena de texto escrita.
28 noviembre, 2017
Buenas, agradecido de antemano por tu trabajo.
ME gustaria saber si puedo agregar bootstrap al diseño del pdf?
28 noviembre, 2017
No, eso no es posible.
Muchas gracias. Saludos 🙂
7 marzo, 2018
Gracias me funciono perfecto
21 octubre, 2019
Muchas gracias fue de gran ayuda.