Generar PDF con PHP

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.

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'));

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


$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);     

Aquí haremos una iteración al array creado anteriormente


$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;
}

Finalmente retornaremos el PDF

$pdf->Output(); 

Descargar librería y ejemplos
Pagina Oficial de FPDF

También te puede interesar

3 Comments

  1. Richard
    abr 28, 2009 @ 16:06:24

    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

    • admin
      abr 29, 2009 @ 07:19:02

      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. Christian
    mar 19, 2010 @ 16:33:08

    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