TUTORIAL DE fPDF

          fPDF es una excelente herramienta para desarrollar aplicaciones en línea con el lenguaje de programación PHP y que puedan generar reportes en PDF.

          Los sitios oficiales de PHP y de fPDF son: http://www.php.net/  y http://www.fpdf.org/ en ellos se encuentran mucha información para tus aplicaciones. En particular el sitio de fPDF contiene unos tutoriales muy útiles para programar las aplicaciones. Nosotros vamos a comenzar con lo mismos ejemplos de los tutoriales de fPDF puesto que es lo más básico para poder gener un simple PDF.




Con fPDF usted puede crear formularios que se llenan en la web y que producen un archivo pdf, o bien puede hacer una consulta a la base de datos y generar el resultado del Query en un archivo PDF que se pueda imprimir de forma profesional.

LA INSTALACIÓN

Hay que entrar al sitio oficial de fPDF y dar clic en donde dice Descargas, allí se presentan varias versiones, elige la más actual y bajala a tu disco duro, descomprime el archivo y copia el directorio en tu servidor. Aquí te dejo un video que encontré en la red:



LOS COMANDOS BÁSICOS

require('fpdf.php')

Siempre debemos de incluir un llamado a la librería fPDF desde nuestro programa en php. Allí es donde se encuentra el código de las herramientas que fPDF nos brinda para poder generar ficheros PDFs. Sin él no podemos hacer nada más.

También se puede susbtituir el comando requiere por include. Es posible tener la librería fPDF en un directorio aparte de donde se encuentra el programa y esto lo puedes hacer de cualquiera de las siguientes maneras:

require('../../Librerias/fPDF/fpdf.php');
include('../../Librerias/fPDF/fpdf.php');


FPDF()

Es el constructor de la clase, el método más importante. Sin él no entra en acción fPDF. Siempre debes de tener esta línea en tu programa. Después puedes modificar los atributos de la clase (con los comandos que abajo se describen) para que se genere el archvo pdf.

Sintaxis:
$pdf = new PDF([Orientacion], [Unidad], [Tamaño]);

Dónde:
  • Orientación de página por defecto. Los posibles valores son (indiferente a mayúsculas):
    • P o Portrait (normal)
    • L o Landscape (apaisado)
 Valor por defecto es P.
  • Unidad: Unidad de medida de usuario. Los posibles valores son:
  • pt: punto
  • mm: milimetro
  • cm: centimetro
  • in: pulgada
 Un punto es igual a 1/72 de pulgada, es decir cerca de 0.35 mm (siendo una pulgada 2.54 cm). Esta es una unidad muy común en tipografía; los tamaños de fuentes son expresados en esa unidad.

 Valor por defecto es mm.
  • Tamaño: El formato usado por las páginas. Es puede ser uno de los siguientes valores (indiferente a mayúsculas):
  • A3
  • A4
  • A5
  • Letter
  • Legal
  •  o un formato personalizado en la forma de un array de dos elementos conteniendo el ancho y el alto (expresado en la unidad dada por unit).
 Valor por defecto es A4.

Ejemplos:
$pdf = new FPDF('P','mm',array(100,150));

$pdf = new PDF();

AddPage()

Añade una nueva página al documento.  La fuente que fue fijada antes de ser invocada es restaurada automáticamente. No es necesario invocar nuevamente SetFont() si desea continuar con la misma fuente. Esto también se aplica para colores y ancho de líneas.

 El origen del sistema de coordenadas es la esquina superior izquierda y se incrementan hacia abajo.

Sintaxis:
$pdf->AddPage([Orientacion], [Tamaño]);

Donde Orientación y Tamaño tienen las mismas especificaciones que las indicadas en el comando FPDF.

Ejemplos:
$pdf->AddPage();
$pdf->AddPage('P');
$pdf->AddPage('P', 'Letter');

SetFont()

Establece la fuente usada para imprimir cadenas de carácteres. Es obligatorio invocar este método por lo menos una vez antes de imprimir texto o el documento resultante no será válido. El método puede ser invocado antes que la primera página sea creada y es mantenido de página a página.  Si sólo desea cambiar el tamaño de la fuente actual, es más simple invocar SetFontSize().

Sintaxis:
SetFont(string family [, string style [, float size]])

Donde:
  • Family:  Familia de fuente. Puede ser un nombre definido por AddFont() o una de las familias estándar (no sensible a mayúsculas o minúsculas):
    • Courier (fixed-width)
    • Helvetica o Arial (sinónimo; sans serif)
    • Times (serif)
    • Symbol (symbolic)
    • ZapfDingbats (symbolic) 
Tambien es posible pasar un cadena vacia. En este caso, se mantiene la familia actual.

  • Style: Estilo de fuente. Los valores posibles son (no sensible a mayúsculas o minúsculas):
  • cadena vacia: regular
    • B: bold
    • I: italic
    • U: underline 
    • o cualquier combinación. El valor por defecto es regular.
 Los estilos Bold e italic no aplican para Symbol y ZapfDingbats.
  • Size:  Tamaño de fuente en puntos.  El valor por defecto es el tamaño actual. Si ningún tamaño ha sido especificado desde el comienzo del documento, toma el valor de 12.
Ejemplos:
// Times regular 12
$pdf->SetFont('Times');
// Arial bold 14
$pdf->SetFont('Arial','B',14);
// Elimina bold
$pdf->SetFont('');
// Times bold, italic y underlined 14
$pdf->SetFont('Times','BIU');

Cell()

Imprime una celda (de área rectangular) bordes opcionales, color de fondo y secuencia de carácteres La esquina superior izquierda de la celda corresponde a la posición actual. El texto puede ser alineado o centrado. Despues de invocar, la posición actual se desplaza a la derecha o la siguiente línea. Es posible poner una referencia en el texto.
 Si está el salto de página automático habilitado y la celda esta por fuera del límite, es realizado un salto de página antes de producir la salida.

Este comando es uno de los más utilizados por que se usa para imprimir el texto. Por ello ahondaremos más en éste.

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

Donde:
  • 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
  • Fill:  Indica si elfondo de la celda debe ser dibujada (true) o transparente (false). Valor por defecto: false.
  • Link: URL o identificador retornado por AddLink().
Ejemplos:
// Texto centrado en una celda con cuadro 20*10 mm y salto de línea
$pdf->Cell(20,10,'Title',1,1,'C');



Output()

Envía el documento a un destino dado: una cadena, un fichero local o al navegador. En el último caso, puede utilizarse la extensión -plug in- (si existe) o forzarse un cuadro de diálogo de descarga.  El método invoca ante todo a Close() si es necesario cerrar el documento.

Sintaxis:
string Output([string name, string dest])

  • Name:  El nombre del fichero. Si no se especifica, el documento se envía al navegador (destino I) con el nombre doc.pdf.
  • Dest:  Destino al que enviar el documento. Puede tener uno de los siguientes valores:
    • I: envía el fichero al navegador de forma que se usa la extensión (plug in) si está disponible. El nombre dado en nombre se usa si el usuario escoge la opción "Guardar como..." en el enlace que genera el PDF.
    • D: envía el fichero al navegador y fuerza la descarga del fichero con el nombre especificado por nombre.
    • F: guarda el fichero en un fichero local de nombre nombre.
    • S: devuelve el documento como una cadena. nombre se ignora.
Ejemplos:
$pdf->Output();
$pdf->Output('PAMY.pdf','D');

NUESTROS PRIMEROS PROGRAMAS

Primer Programa
<?php
    //-----------------------------------------------------------------------------------
    //    Ejemplo básico de utilización de fPDF
    //-----------------------------------------------------------------------------------
    require('fpdf.php');

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

Explicación del programa:
  1. La primera línea <?php nos indica que comienza el código del programa utilizando PHP.
  2. Las siguientes tres líneas que comienzan con // es un comentario del programa.
  3. El comando requiere le indica al servidor que se va a utilizar la librería fpdf. Y va a incorporar el código de la librería en nuestro programa.
  4. El comando new FPDF() le indica al servidor que se va generar un nuevo archivo PDF con las instrucciones de la librería fPDF.
  5. El comando AddPage() agrega una página nueva al documento PDF
  6. SetFont() define el tipo a utilizar que es Arial Bold de 16 puntos.
  7. Cell() escribe Hola Mundo! en el documento. Cell lo escribe en la coordenada (40,10)
  8. El comando Output() genera el archivo pdf y lo envía al navegador.

Recuerda que para que el código anterior funcione. Debes de haber instalado la librería completa en un servidor que corra con PHP y el programa que acabamos de generar debe estar en el mismo directorio que el archivo fpdf.php



REFERENCIAS Y BIBLIOGRAFÍA