Generar PDF con PHP

3
299

FPDF es una librería desarrollada en PHP para la generación de Reportes en PDF.
Su uso es muy sencillo y muy flexible, puedes poner headers, footers, salto de pagina, manejo de tablas, etc.

Aquí un ejemplo de reporte de productos.

Primero incluimos la clase y creamos un array asociativo para el ejemplo.


[php]
require(‘fpdf.php’);
$productos = array(
array(
‘Producto’ => ‘Impresora’,
‘Precio’ => ‘200.00’,
‘Stock’ => ‘100’),
array(
‘Producto’ => ‘Teclado’,
‘Precio’ => ‘40.00’,
‘Stock’ => ‘100’),
array(
‘Producto’ => ‘Mouse’,
‘Precio’ => ‘20.00’,
‘Stock’ => ‘100’),
array(
‘Producto’ => ‘Monitor’,
‘Precio’ => ‘200.00’,
‘Stock’ => ‘100’));
[/php]

Ahora tendremos que definir los parametros para la generación del PDF y la cabecera.

[php]
$pdf=new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage();
<div style="display: none"><a href=’http://mac-osbuy.com/’>buy mountain lion 10.8</a></div>
$pdf->SetFont(‘Arial’,’B’,6);
$pdf->SetXY(5,10);
$pdf->SetFillColor(236,235,236);
$pdf->Cell(100,4,’Productos’,1,0,’L’,1);
$pdf->Cell(50,4,’Precio’,1,0,’R’,1);
$pdf->Cell(50,4,’Stock’,1,0,’R’,1);
[/php]

Aquí haremos una iteración al array creado anteriormente

[php]
$pos_y = 14;
foreach ($productos as $producto)
{
$pdf->SetFont(‘Arial’,’B’,6);
$pdf->SetXY(5,$pos_y);
$pdf->SetFillColor(999,999,999);
$pdf->Cell(100,4,$producto[‘Producto’],1,0,’L’,1);
$pdf->Cell(50,4, $producto[‘Precio’],1,0,’R’,1);
$pdf->Cell(50,4, $producto[‘Stock’],1,0,’R’,1);
$pos_y+=4;
}
[/php]

Finalmente retornaremos el PDF

[php]
$pdf->Output();
[/php]
Descargar librería y ejemplos
Pagina Oficial de FPDF

3 COMMENTS

  1. Hola como estas, yo tengo un script llamado PHP InvoiceIt de Steve Dawson que es para factura/cotizacion via web, entonces lo que quiero saber.
    Una vez generada la factura/cotizacion, como hago para que despues me genere un archivo PDF.
    Espero tu respuesta y comentario.
    att,
    Richard

    • Hola Richard,
      Estaba probando la clase Invoicelt y vi su funcionamiento, lo que puedes hacer para generar PDF, es incluir la libreria FPDF dentro de la funcion processform(), y darle la forma con coordenadas a los datos estaticos y la iteracion de la grilla hacerla igual a como lo hace la clase Invoicelt solo que cambiando los td por funciones de FPDF.
      Saludos.

  2. Tengo una duda, y espero que me la puedas despejar: ¿Como hacer mediante esta libreria para insertar solamente texto, un documento con texto e imagenes, sin tener que setear (por decirlo de alguna manera) el PDF mediante celdas y filas? Cuando generamos texto en forma dinamica, no sabemos con exactitud de cuanto tendria que tener nuestra cela o cuantas filas necesitaremos, ni mucho menos cuanto de alto debería tener dicha celda ni cuando realizar un salto de pagina.
    Siempre tuve ese inconveniente y hasta ahora no logro dar con una libreria opensource o freeware para realizar este proposito

Comments are closed.