FPDF

RECU-0276 (Recurso Ficha Técnica)

Descripción

FPDF es una clase librería 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), por lo que es posible utilizar la librería para cualquier propósito y modificar la misma para satisfacer nuestras necesidades.

Ejemplo de uso

Comencemos con el clásico ejemplo para generar en pdf el mensaje "Hola Mundo":

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

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'¡Hola, Mundo!');
$pdf->Output();
?>

En primer lugar es necesario incluir el fichero de la clase. Una vez hecho esto, se crea el objeto FPDF. El constructor FPDF() es usado aquí con sus valores por defecto: las páginas son de tamaño a4 alargado y la unidad de medida es el milímetro. Es posible usar el formato apaisado(L), otros formatos de página y otras unidades de medida (pt, cm, in). Se podría haber declarado explícitamente con:

$pdf=new FPDF('P','mm','A4');

Como aun no se ha creado ninguna página, es necesario crear una con el método AddPage(). El origen de coordenadas está en la esquina superior izquierda y la posición actual está por defecto situada a 1 cm de los bordes; los márgenes pueden cambiarse con el método SetMargins().

Antes de que se pueda imprimir texto, es obligatorio escoger una fuente con SetFont(). De no hacerlo así, el documento no será válido. En el ejemplo se escoge Arial en negrita de tamaño 16:

$pdf->SetFont('Arial','B',16);

Se podría haber especificado itálica con I, subrayado con U o normal con una cadena vacía (o cualquier combinación de las anteriores). Observe que el tamaño de la fuente se determina en puntos, no en milímetros (ni en cualquier otra unidad establecida por el usuario); es la única excepción. Las otras fuentes incorporadas son Times, Courier, Symbol y ZapfDingbats.

Ahora es posible imprimir una celda con Cell(). Una celda es una superficie rectangular, con borde si se quiere, que contiene texto. Se imprime en la posición actual. Es posible especificar sus dimensiones, el texto (centrado o alineado), si queremos dibujar o no los bordes, y dónde se ubicará la posición actual después de imprimir la celda (a la derecha, debajo o al principio de la siguiente línea). Para añadir el borde, será necesario hacer lo siguiente:

$pdf->Cell(40,10,'¡Hola, Mundo!',1);

Para añadir una nueva celda a continuación, con el texto centrado e ir a la siguiente línea, será necesario escribir:

$pdf->Cell(60,10,'Hecho con FPDF.',0,1,'C');

El salto de línea puede provocarse también mediante Ln(). Este método le permite especificar además la altura del salto.

Finalmente, el documento se cierra y se envía al navegador con Output(). También se podría haber guardado en un fichero pasando como parámetro el nombre del archivo.

Hay que tener en cuenta que, en caso de que el PDF se envíe al navegador, nada más se complete debe enviarse, ni antes ni después (el más mínimo espacio en blanco o retorno de carro también cuenta). Si se envía algún dato antes, obtendrá el mensaje de error: "Some data has already been output, can't send PDF file". Si se envía después, su navegador puede que muestre únicamente una página en blanco.

Ventajas e inconvenientes

Sus características principales son:

  • Funciones de alto nivel.
  • 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.

Requisitos e incompatibilidades

Utilizar una versión de PHP 4 o superior.

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » PHP
Código Título Tipo Carácter
LIBP-0350 Librerías para aplicaciones PHP Libro de pautas Directriz Recomendada