Cómo crear archivos PDF con PHP

Hay muchas aplicaciones web que requieren el hecho de generar archivos como facturas, contratos o la propia página en formato PDF. PHP cuenta con la librería PDFlib para crear archivos PDF dinámicamente pero es demasiado compleja y necesitarías mucho tiempo para estudiarla y comprenderla. Por suerte, existe otra clase de PHP llamada FPDF que te permite generar archivos PDF sin tener que recurrir a la librería PDFlib.

La librería FPDF es gratuita y te la puedes descargar desde su sitio web oficial. El paquete de descarga contiene todos los archivos necesarios, con ciertos tutoriales para que sepas cómo ponerla en práctica. A continuación puedes ver un código para crear un PDF con la información extraida de una tabla MySQL mediante la librería FPDF. Debes descargar y extraer el paquete FPDF en la carpeta donde se encuentra el fichero PHP con el código para ejecutar este ejemplo.

Script de PHP para crear un PDF de una tabla MySQL con PHP

<?php
include_once("../db_connect.php");
$sql = "SELECT id, employee_name, employee_salary, employee_age FROM employee LIMIT 10";
$resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
require('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
while ($field_info = mysqli_fetch_field($resultset)) {
$pdf->Cell(47,12,$field_info->name,1);
}
while($rows = mysqli_fetch_assoc($resultset)) {
$pdf->SetFont('Arial','',12);
$pdf->Ln();
foreach($rows as $column) {
$pdf->Cell(47,12,$column,1);
}
}
$pdf->Output();
?>

Espero que te hayas descargado y extraído el paquete FPDF dentro de una carpeta en tu servidor. Ahora crea un nuevo fichero llamado createpdf.php dentro de la misma carpeta e introduce el código anterior. A continuación, ejecuta el fichero accediendo al mismo a través de un navegador.

Tabla MySQL e Información

Ejecuta estas queries de SQL para la información de ejemplo:

--
-- Table structure for table `employee`
--
CREATE TABLE IF NOT EXISTS `employee` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key',
`employee_name` varchar(255) NOT NULL COMMENT 'employee name',
`employee_salary` double NOT NULL COMMENT 'employee salary',
`employee_age` int(11) NOT NULL COMMENT 'employee age',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='datatable demo table' AUTO_INCREMENT=58 ;
--
-- Dumping data for table `employee`
--
INSERT INTO `employee` (`id`, `employee_name`, `employee_salary`, `employee_age`) VALUES
(1, 'Tiger Nixon', 320800, 61),
(2, 'Garrett Winters', 170750, 63),
(3, 'Ashton Cox', 86000, 66),
(4, 'Cedric Kelly', 433060, 22),
(5, 'Airi Satou', 162700, 33),
(6, 'Brielle Williamson', 372000, 61),
(7, 'Herrod Chandler', 137500, 59),
(8, 'Rhona Davidson', 327900, 55),
(9, 'Colleen Hurst', 205500, 39),
(10, 'Sonya Frost', 103600, 23);

Fuente: phpzag.com

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP