RSS

FPDF: Estilo de Celdas

25 Nov

Ahora vamos a darle estilo a la tabla que estamos generando. A la cabecera le colocaremos un verde tenue al fondo de las celdas y el texto será blanco. A los datos de la tabla haremos haremos un ‘truquillo’ para alternar entre filas. Es decir, una fila será color gris y otra será sin fondo. Ya veremos 🙂

Cabe señalar que este ‘truqillo’ para alternar el fondo de cada fila, lo vi en otras ocasiones con una serie de if anidados y con un ciclo for, muy complicado :S. Pero analizando un poco aquél código, me di cuenta que lo único que se necesitaba era colocar una variable bandera que variará su valor en cada iteración. A su vez, este valor de la bandera pasarlo al método Cell( ) para que rellene o deje vacía la celda.

Veamos el código 😉

PDF.php

<?php
require('fpdf/fpdf.php');

class PDF extends FPDF
{
    function cabeceraHorizontal($cabecera)
    {
		$this->SetXY(10, 10);
		$this->SetFont('Arial','B',10);
		$this->SetFillColor(2,157,116);//Fondo verde de celda
		$this->SetTextColor(240, 255, 240); //Letra color blanco
		foreach($cabecera as $fila)
		{
			//Atención!! el parámetro true rellena la celda con el color elegido
	    	$this->Cell(24,7, utf8_decode($fila),1, 0 , 'L', true);
    	}
    }

    function datosHorizontal($datos)
    {
		$this->SetXY(10,17);
		$this->SetFont('Arial','',10);
		$this->SetFillColor(229, 229, 229); //Gris tenue de cada fila
		$this->SetTextColor(3, 3, 3); //Color del texto: Negro
		$bandera = false; //Para alternar el relleno
		foreach($datos as $fila)
		{
			//El parámetro badera dentro de Cell: true o false
			//true: Llena  la celda con el fondo elegido
			//false: No rellena la celda
			$this->Cell(24,7, utf8_decode($fila['nombre']),1, 0 , 'L', $bandera );
			$this->Cell(24,7, utf8_decode($fila['apellido']),1, 0 , 'L', $bandera );
			$this->Cell(24,7, utf8_decode($fila['matricula']),1, 0 , 'L', $bandera );
			$this->Ln();//Salto de línea para generar otra fila
			$bandera = !$bandera;//Alterna el valor de la bandera
    	}
    }

    function tablaHorizontal($cabeceraHorizontal, $datosHorizontal)
    {
		$this->cabeceraHorizontal($cabeceraHorizontal);
		$this->datosHorizontal($datosHorizontal);
	}

} // FIN Class PDF
?>

index.php

<?php
include_once('PDF.php');
$pdf = new PDF();

$pdf->AddPage();

$miCabecera = array('Nombre', 'Apellido', 'Matrícula');

$misDatos = array(
			array('nombre' => 'Hugo', 'apellido' => 'Martínez', 'matricula' => '20420423'),
			array('nombre' => 'Araceli', 'apellido' => 'Morales', 'matricula' =>  '204909'),
			array('nombre' => 'Georgina', 'apellido' => 'Galindo', 'matricula' =>  '2043442'),
			array('nombre' => 'Luis', 'apellido' => 'Dolores', 'matricula' => '20411122'),
			array('nombre' => 'Mario', 'apellido' => 'Linares', 'matricula' => '2049990'),
			array('nombre' => 'Viridiana', 'apellido' => 'Badillo', 'matricula' => '20418855'),
			array('nombre' => 'Yadira', 'apellido' => 'García', 'matricula' => '20443335')
			);

$pdf->tablaHorizontal($miCabecera, $misDatos);

$pdf->Output(); //Salida al navegador
?>

Acá la salida en el navegador:

Tabla con Estilo a la cabecera y datos

Tabla con Estilo a la cabecera y datos

 

Reporte Estático <— Anterior || Siguiente —> Ajustar texto a celda

@huguidugui || ringhugos@gmail.com

Anuncios
 
7 comentarios

Publicado por en 25 noviembre, 2013 en FPDF, PHP

 

Etiquetas: , ,

7 Respuestas a “FPDF: Estilo de Celdas

  1. goyo

    5 junio, 2015 at 07:20

    muy bien!! …. gracias

     
  2. Juan Jose Cano Duque

    20 agosto, 2015 at 10:07

    GENIO GENIOOO!!!
    Gracias

     
    • huguidugui

      20 agosto, 2015 at 14:38

      Ok, gracias 😀 Aunque todavía sigo aprendiendo. Me alegra que te haya servido.

      Saludos.

       
  3. wallshapel

    12 diciembre, 2016 at 08:57

    sabe alguien como crear una tabla con esta librería, pero no tan sencilla. Necesito que combine tanto filas como columnas. Especificamente me gustaria tener el codigo de una tabla sencilla pero que combiene tanto filas como columnas y que algunas columnas y filas si sean normales

     
    • huguidugui

      12 diciembre, 2016 at 21:15

      Hola, para estos casos yo te recomiendo que uses otro tipo de librerías. FPDF trabaja con formatos muy sencillos.
      Puedes usar por ejemplo DOMPDF o aquí mismo en mi blog tengo un ejemplo desde crear una hoja en blanco hasta obtener datos de la BD con la librería HTML2PDF aquí está el primer post –> http://wp.me/p24DD5-jl
      HTML2PDF está basada en FPDF, te será fácil entenderla si ya has trabajado con FPDF y es mucho más flexible en cuanto a diseño, por ejemplo lo que comentas de columnas y/o celdas que se combinen etc., ya que el html que crees, se vuelve en PDF.

      Saludos y gracias por seguir el blog.

       
  4. Mateo

    26 enero, 2017 at 13:44

    Excelente!! De gran ayuda

     

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: