Sacame el Documento – Usando FPDF con PHP

Sábado, cinco y media de la tarde me vibra el cel en el bolsillo mientras estoy manejando con destino al retiro de mi hijo menor de un cumpleaños. Pensando que es mi mujer, cuando paro en el primer semáforo, lo saco y pegando un rápido vistazo veo que es el mensaje de un cliente. Para mis adentros puteo en voz baja por no respetar ni los sábados y lo dejo para un poco más tarde.

Y pasó a más tarde. al domingo a última hora. Mientras estaba mirando un  programa de cocina recuerdo el mensaje nunca visto. ¿El pedido? Que el sistema que estaba desarrollando pueda emitir factura, y pueda emitir factura en pdf …

Así que en el día de hoy, veremos como armar un pdf con la dbiblioteca FPDF para PHP.

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): pudiendo usarla para cualquier propósito y modificarla a gusto.

FPDF tiene otras ventajas:

  • Elección de la unidad de medida, formato de página y márgenes
  • Gestión de cabeceras y pies de página
  • Salto de página automático
  • Salto de línea y justificación del texto automáticos
  • Admisión de imágenes (JPEG, PNG y GIF)
  • Colores
  • Enlaces
  • Admisión de fuentes TrueType, Type1 y codificación
  • Compresión de página

 

Pero que mejor que verlo con un ejemplo:

<?php
//Pedimos la biblioteca
require('fpdf.php');

//Creamos un nuevo PDF
$pdf = new FPDF('P','mm','A4');
// como parámetros pasamos que la hoja se tomará derecho, con las medidas en milímetros y en tamaño A4

//Agregamos la primer hoja
$pdf->AddPage();

//Definimos la fuente y su tamaño
$pdf->SetFont('Arial','B',16);

// Escribimos en una celda
$pdf->Cell(40,10,'¡Hola, Mundo!');
//Ahora veremos más en detalle esto

//Finalizando el Documento
$pdf->Output();
?>

Lo que más vamos a estar repitiendo constantemente es Cell, que es ni más ni menos que la definición de cada celda que ubicaremos en el PDF.

Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])

Asi, Cell imprime una celda (de área rectangular) con bordes opcionales, color de fondo y secuencia de carácteres. El texto puede ser alineado o centrado. Despues de invocar, la posición actual se desplaza a la derecha o la siguiente línea.

Si esta el salto de página automático habilitado y la celda esta por fuera del límite, Se realiza el salto antes de mostrar la celda.

Sus parámetros son: 

  • w Ancho de Celda. Si es 0, la celda se extiende hasta la márgen derecha.
  • h Alto de celda. Valor por defecto: 0.
  • txt cadena a ser impresa. Valor por defecto: cadena vacia.
  • border Indica si los bordes deben se dibujados alrededor de la celda. El valor puede ser un número:
    • 0: sin borde
    • 1: marco
  • o una cadena que contenga una o una combinación de los siguientes caracteres (en cualquier orden):
    • L: izquierda
    • T: superior
    • R: derecha
    • B: inferior

Valor por defecto: 0.

  • ln Indica donde la posición actula debería ir antes de invocar. Los valores posibles son:
    • 0: a la derecha
    • 1: al comienzo de la siguiente línea
    • 2: debajo

Poner 1 es equivalente a poner 0 y llamar justo despues Ln(). Valor por defecto: 0.

  • align Permite centrar o alinear el texto. Los posibles valores son:
    • L o una cadena vacia: alineación izquierda (valor por defecto)
    • C: centro
    • R: alineación derecha

fillIndica si elfondo de la celda debe ser dibujada (true) o transparente (false). Valor por defecto: false.

linkURL o identificador retornado por AddLink().

No tiene más secretos, recuerden pasar y descargar la biblioteca por www.fpdf.org . Miren los ejemplos y lo scripts que aclaran la onda, igual, van a estar un rato protestando hasta que el PDF les quede con el formato que buscan.

Así quedan las facturas…

 

Deja un comentario