RSS

FPDF: Llenar formatos (Diseño 2/3)

09 Dic

Como lo he dicho a varios de mis lectores, en definitiva, diseñar un formato lleva su tiempo. Se ha de diseñar primeramente un bosquejo a lápiz y papel para tener una idea general del diseño y definir cuáles métodos se han de usar en el código y lograr el diseño requerido.

En esta ocasión les presento un formato con un diseño sencillo el cual utiliza un margen decorativo y dos imágenes que se colocan con el método Image. Hago uso del método Line que dibuja una línea recta y celdas sin borde.

Evidentemente un diseño será tan complejo como se requiera, acá el punto es solo demostrar que los datos que obtengamos también se pueden colocar en posiciones distintas y no solo en tablas y reportes.

La carpeta de trabajo contendrá: index.php, PDF.php, carpeta de la librería y 3 imágenes. En este ejemplo el archivo PDF.php no contendrá ningún código, simplemente pondremos la clase extendida PDF de FPDF para poder usar en index.php objetos de FPDF.

Veamos el código y la salida:

index.php

<?php
include_once('PDF.php');
$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B', 10);
//Margen decorativo iniciando en 0, 0
$pdf->Image('fondo.jpg', 0,0, 210, 295, 'JPG');

//Imagen izquierda
$pdf->Image('chico.png', 25, 25, 17, 25, 'PNG');

//Imagen derecha
$pdf->Image('vomito.jpg', 155, 27, 25, 22, 'JPG');

//Texto de Título
$pdf->SetXY(60, 25);
$pdf->MultiCell(65, 5, utf8_decode('AQUI PONDREMOS UN TÍTULO REPRESENTATIVO DE ALGUNA EMPRESA O INSTITUCIÓN'), 0, 'C');

//Texto Explicativo
$pdf->SetFont('Courier','', 7);
$pdf->SetXY(48, 45);
$pdf->MultiCell(100, 4, utf8_decode('AQUI PONDREMOS UN EXPLICACIÓN PARA DESCRIBIR ALGUN PROCESO O EL TIPO DE FORMATO QUE SE ESTA DEFINIENDO O CUALQUIER OTRA COSA :P'), 0, 'J');

//De aqui en adelante se colocan distintos métodos
//para diseñar el formato.

//Fecha
$pdf->SetFont('Arial','', 12);
$pdf->SetXY(145,60);
$pdf->Cell(15, 8, 'FECHA:', 0, 'L');
$pdf->Line(163, 65.5, 185, 65.5);

//Nombre //Apellidos //DNI //TELEFONO
$pdf->SetXY(25, 80);
$pdf->Cell(20, 8, 'NOMBRE(S):', 0, 'L');
$pdf->Line(52, 85.5, 120, 85.5);
//*****
$pdf->SetXY(25,100);
$pdf->Cell(19, 8, 'APELLIDOS:', 0, 'L');
$pdf->Line(52, 105.5, 180, 105.5);
//*****
$pdf->SetXY(25, 120);
$pdf->Cell(10, 8, 'DNI:', 0, 'L');
$pdf->Line(35, 125.5, 90, 125.5);
//*****
$pdf->SetXY(110, 120);
$pdf->Cell(10, 8, utf8_decode('TELÉFONO:'), 0, 'L');
$pdf->Line(135, 125.5, 170, 125.5);

//LICENCIATURA  //CARGO   //CÓDIGO POSTAL
$pdf->SetXY(25, 140);
$pdf->Cell(10, 8, 'LINCECIATURA EN:', 0, 'L');
$pdf->Line(27, 154, 65, 154);
//*****
$pdf->SetXY(80, 140);
$pdf->Cell(10, 8, 'CARGO:', 0, 'L');
$pdf->Line(75, 154, 105, 154);
//*****
$pdf->SetXY(125, 140);
$pdf->Cell(10, 8, utf8_decode('CÓDIGO POSTAL:'), 0, 'L');
$pdf->Line(120, 154, 170, 154);

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

?>

PDF.php solo contendrá:

<?php
require('fpdf/fpdf.php');
class PDF extends FPDF
{
}
?>

Y acá la salida:

Formato Sencillo

Formato Sencillo

Lo más interesante de este ejemplo está por venir 😀

@huguidugui || ringhugos@gmail.com

 
6 comentarios

Publicado por en 9 diciembre, 2013 en FPDF, PHP

 

Etiquetas: ,

6 Respuestas a “FPDF: Llenar formatos (Diseño 2/3)

  1. Gilberto

    9 diciembre, 2013 at 21:03

    De verdad orale muchas gracias la verdad eso eh estado buscando enserio.

     
  2. Gilberto

    9 diciembre, 2013 at 21:54

    oyes tengo una duda no se si me puedas ayudar en esta, como puedo generar un reporte pdf por cada cliente. utilizando una tabla donde va a tener cada registro, por ejemplo cliente, direccion, equipo a reparar, falla del equipo, fecha costo del equipo a reparar,modelo del equipo.
    esos datos que se exporten a pdf para un cliente, para imprimir el reporte entregarselo. y asi de esa manera para cada cliente. pero en la tabla dando click a la celda o fila del cliente para exportar a pdf. y asi acada fila de cada cliente dando click para exportar sus datos a pdf.

     
  3. DavidC

    24 julio, 2014 at 17:05

    Excelente tuturial, pero no he encontrado la forma de que la hoja quede horizontal. Me puedes ayudar con este dato por favor.

    Muchas gracias 🙂

     
    • huguidugui

      26 julio, 2014 at 06:52

      Hola DavidC, para lo que mencionas debes usar el método de AddPage como sigue:
      $pdf->AddPage(‘P’, ‘Letter’); //Vertical, Carta
      $pdf->AddPage(‘L’, ‘Letter’); //Horizontal, Carta

      Solo hay que cambiar el primer parámetro.

      Saludos y gracias por leer el blog

       
  4. jose

    24 marzo, 2015 at 20:31

    buenas quisiera saber como colocar una imagen centrada y que salga en todas las paginas en forma de agua es decir fondo de agua gracias de antemano

     
    • huguidugui

      26 marzo, 2015 at 09:40

      Hola José, próximamente este y todos los tutos tendrán una actualización ahora con la librería HTML2PDF, ésta permite el diseño con html y css y será mucho más fácil de diseñar las hojas de tu pdf. Con FPDF también se puede y puedes descargar el código en la sección de scripts de fpdf.org.
      El primer tuto a actualizar será el de crear PDF desde PHP (1/7).
      Gracias por leer el blog 😀

       

Deja un comentario

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: