Qu es FPDF?
FPDF es una clase escrita en PHP que permite generar documentos PDF directamente desde PHP, es decir, sin usar la biblioteca PDFlib. La F de FPDF significa Free (gratis y libre): puede usted usarla para cualquier propsito y modificarla a su gusto para satisfacer sus necesidades.
FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principales caractersticas:
* Eleccin de la unidad de medida, formato de pgina y mrgenes * Gestin de cabeceras y pies de pgina * Salto de pgina automtico * Salto de lnea y justificacin del texto automticos * Admisin de imgenes (JPEG, PNG y GIF) * Colores * Enlaces * Admisin de fuentes TrueType, Type1 y codificacin * Compresin de pgina
Una vez que la incluyas dentro de tu carpeta de proyectos web, puedes crear un pdf como lo desees.. Aqu mi ejemplo particular, ara adaptarlo puedes configurar tu clave usuario, y base de datos a usar, modificas las consultas a conveniencia, en este caso hay dos tablas dos funciones y dos consultas..
SetFillColor(62,102,60); // fondo de celda $this->SetTextColor(255); // color del texto $this->SetDrawColor(0,0,0); // color de linea $this->SetLineWidth(.3); // ancho de linea $this->SetFont('Arial','', 7); $w=array(20,100,15,10,15,15,15); // en este arreglo definiremos el ancho de cada
columna for($i=0;$iCell($w[$i],4,$header[$i],1,0,'C',1); //por cada encabezado existente, crea una celda $this->Ln(); //Colores, ancho de lnea y fuente en negrita de CONTENIDO $this->SetFillColor(244,244,244); // $this->SetTextColor(0); $this->SetFont(''); //Datos $fill=false; // variable para alternar relleno foreach($data as $row) { $columna = explode(";",$row); //separar los datos en posiciones de arreglo $this->Cell($w[0],6,$columna[0],'LR',0,'L',$fill); //celda(ancho,alto,salto de linea,border,alineacion,relleno) $this->Cell($w[1],6,$columna[1],'LR',0,'L',$fill); $this->Cell($w[2],6,$columna[2],'LR',0,'L',$fill); $this->Cell($w[3],6,$columna[3],'LR',0,'L',$fill); $this->Cell($w[4],6,$columna[4],'LR',0,'L',$fill); $this->Cell($w[5],6,$columna[5],'LR',0,'L',$fill); $this->Cell($w[6],6,$columna[6],'LR',0,'L',$fill); $this->Ln(); $fill=!$fill; //se alterna el valor del boolean $fill para cambiar relleno } $this->Cell(array_sum($w),0,'','T'); } function tabla1($header1,$data1) { //Colores, ancho de lnea y fuente en negrita de CABECERA $this->SetFillColor(62,102,60); // fondo de celda $this->SetTextColor(255); // color del texto $this->SetDrawColor(0,0,0); // color de linea $this->SetLineWidth(.3); // ancho de linea $this->SetFont('Arial','', 6); // negrita $w=array(70); // en este arreglo definiremos el ancho de cada columna for($i=0;$iCell($w[$i],4,$header1[$i],1,0,'C',1); //por cada encabezado existente, crea una
celda $this->Ln(); //Colores, ancho de lnea y fuente en negrita de CONTENIDO $this->SetFillColor(244,244,244); // $this->SetTextColor(0); $this->SetFont(''); //Datos $fill=false; // variable para alternar relleno foreach($data1 as $row) { $columna = explode(";",$row); //separar los datos en posiciones de arreglo
if ($columna[0]>$w[0]){ $this->Cell($w[0],20,$columna[0],'LR',1,'L',$fill); //celda(ancho,alto,salto de linea,border,alineacion,relleno) } else{ $this->Cell($w[0],5,substr($columna[0],0, 45),'LR',1,'L',$fill); $this->Cell($w[0],5,substr($columna[0],45,53),'LR',1,'L',$fill); $this->Cell($w[0],5,substr($columna[0],99,150),'LR',1,'L',$fill); $this->Ln(0); } $fill=!$fill; //se alterna el valor del boolean $fill para cambiar relleno } $this->Cell(array_sum($w),0,'','T'); } function Footer() { //Pie de pgina $this->SetY(-15); $this->SetFont('Arial','I',10); $this->SetTextColor(128); $this->Cell(0,10,'Pagina '.$this->PageNo().' de {nb}',0,0,'C'); // el parametro {nb} es generado por una funcion llamada AliasNbPages
} } $pdf = new PDF(); $pdf->AliasNbPages(); //funcion que calcula el numero de paginas $sql1 = "SELECT informacion FROM empresa"; $modificar11 = mysql_query($sql1, $conex) or die(mysql_error()); $head1 = array("VENEZOLANA DE RIEGO, C.A"); // cabecera $i=0; while ($fila=mysql_fetch_array($modificar11)){ //llenar variable dat con los campos de una fila unidos por ; $dat1[$i]=$fila[0]; //concatenar para luego ser separado por explode() $i++; } $sql = "SELECT codigo, descripcion, unidad, cantidad, precio_uni, descuento, total FROM orden_articulos where orden='10733'"; $modificar1 = mysql_query($sql, $conex) or die(mysql_error()); $head = array("Codigo","Descripcion","Unidad","Cant","Precio","Dcto","Total"); // cabecera $i=0; while ($fila=mysql_fetch_array($modificar1)){ //llenar variable dat con los campos de una fila unidos por ; $dat[$i]=$fila[0].";".($fila[1]).";".$fila[2].";".$fila[3].";".$fila[4].";".$fila[5].";".$fila[6]; //concatenar para luego ser separado por explode() $i++; } $pdf->AddPage(); //crear documento $pdf->Image('images/logo.jpg',10,8,30,30); //aadir imagen $pdf->Cell(50); $pdf->SetFont('Arial','',12); $pdf->Cell(120,15,"ORDEN DE COMPRA",0,0,'C'); $pdf->Ln(35); $pdf->SetFont('Arial','',12); $pdf->Ln(10); $pdf->tabla1($head1,$dat1); $pdf->Ln(30); $pdf->tabla($head,$dat);