Como generar un archivo pdf desde php con TCPDF
|Anteriormente para todos mis reportes pdf he utilizado una librería llamada FPDF, la cual me ha funcionado muy bien pero hace poco quise probar TCPDF la cual tiene unas funciones muy interesantes que han llamado mi atención.
Si no me equivoco TCPDF es un fork de FPDF, ya que tiene las mismas funciones básicas, pero que con el tiempo han añadido multitud de mejoras y funciones adicionales realmente muy buenas como el hecho de poder agregar texto formato de HMTL o incluso generar códigos de barra al vuelo. Por estas razones es que me he decidido probarla y esta vez vamos a ver lo básico de como crear un pdf con header, footer y añadir un simple texto al cuerpo del archivo.
Comenzamos descargado la librería TCPDF que es realmente pesada (en su versión completa) a comparación de muchas otras librarías que he utilizado antes, esto es por la gran cantidad de fuentes incluidas dentro, pero también verán que hay una versión "min" que sirve a nuestro propósitos. Luego la descomprimimos en una carpeta dentro de nuestro proyecto web de prueba.
Creamos un archivo php y añadimos la referencia a las funciones de TCPDF de esta manera:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
<?php //agregar libreria tcpdf require_once './tcpdf_min/tcpdf.php'; //clase para crear header y footer personalizado class mipdf extends TCPDF{ //Header personalizado public function Header() { //imagen en header $logo = 'img/php-logo.png'; $this->Image($logo, 25, 10, 25, '', 'PNG', '', '', false, 300, '', false, false, 0, false, false, false); $this->SetFont('helvetica', 'B', 20); $this->Cell(0, 0, 'Titulo de página', 0, false, 'C', 0, '', 0, false, 'T', 'M'); } //footer personalizado public function Footer() { // posicion $this->SetY(-15); // fuente $this->SetFont('helvetica', 'I', 8); // numero de pagina $this->Cell(0, 10, 'Página '.$this->getAliasNumPage().' de '.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M'); } } //iniciando un nuevo pdf $pdf = new mipdf(PDF_PAGE_ORIENTATION, 'mm', 'Letter', true, 'UTF-8', false); //establecer margenes $pdf->SetMargins(25, 35, 25); $pdf->SetHeaderMargin(20); //informacion del pdf $pdf->SetCreator('hug0'); $pdf->SetAuthor('hug0'); $pdf->SetTitle('Ejemplo de pdf con tcpdf'); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); //tipo de fuente y tamanio $pdf->SetFont('helvetica', '', 12); //agregar pag 1 $pdf->AddPage(); $html = ' <h1>Kiuvox</h1> <p style="font-size: 16px;">Este es un ejemplo de texto html escrito con tcpdf desde <a target="_blank" href="http://blog.kiuvox.com">blog.kiuvox.com</a></p> '; //escribe el texto en la hoja $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); //agregar pag 2 $pdf->AddPage(); //escrite el texto en la hoja $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); //terminar el pdf $pdf->Output('kiuvox.pdf', 'I'); |
Y así queda el ejemplo del pdf.
Para más referencia sobre la documentación sobre las funciones ver este enlace.
Relacionado:
Como generar un archivo pdf desde Cakephp 3
ingeniero buen días usted me podría informar sobre otra librería para la generación de documentos PDF me refiero a DOMPDF con todas sus funciones desdes el header hasta el footer por favor..!!!