Crear PDF con PHP

Introducción

En este tutorial, voy a explicar como crear un PDF usando un script en PHP, para lo cual vamos a necesitar descargar la clase FPDF, la cual es gratuita, ampliamente conocida, documentada, y creo que cada día tiene más seguidores.

Breve información acerca de las clases en PHP

No es el propósito de este tutorial enseñarte a desarrollar clases en PHP, pero será útil manejarlas para entender mejor el proceso de creación de nuestro pequeño PDF desde PHP.

Como sabeis, una clase en PHP, es lo más cercano a la programación orientada a objetos, el uso básico de una clase puede incluir lo siguiente:

  • Incluir la clase en nuestro PHP: Pués fácil, con require_once(“archivo.class.php”);
  • Crear una instancia de un objeto: Usamos el operador new. Ejem: $myObjClass= new myClass();
  • Ejecutar un método de la clase: $myvar=$myObjClass->theClassMethod();
  • Acceder a las propiedades de una instancia de clase: $myvar=$myObjClass->theProperty;
  • Crear una clase que herede los métodos y propiedades de otra: class myClassB extends myClass{ … } Aquí myClassB heredará los métodos y propiedades de myClass, y como sabeis, aquellos que no estén protegidos podrán ser redeclarados.
  • Asignar un valor a una propiedad de la clase: $myObjClass->theProperty=$value;

Descargar e instalar FPDF en nuestro servidor

Nota: El proceso de instalación de FPDF puede variar dependiendo el tipo de hosting que ocupes, para fines del ejemplo yo tengo todo en XAMPP sobre un viejo Windows XP (bueno, lo que es realmente viejo es mi máquina).

Accedemos a http://www.fpdf.org y en la página que nos muestra damos clic en el vínculo “Download”.

Una vez en la página de descargas, seleccionamos la versión más reciente; al momento de esta redacción era la 1.6. Hay dos opciones de descarga, en ZIP y TGZ; en lo personal yo elegí ZIP.

Dependiendo de como organicemos la estructura de nuestro sitio web, hay que meter los archivos que vienen en el ZIP en una carpeta fácil de recordar, yo por ejemplo metí los archivos en /classes/fpdf (La carpeta classes está en la raíz de mi sitio, dentro de ella le meti la carpeta fpdf y en ella estarán todos los archivos).

Entendiendo los PDF’s

Un fichero PDF “funciona diferente” que los formatos de Office y otros conocidos. Para el PDF todo son “celdas”, las cuales pueden o no tener bordes, estar pintadas o no de un color u otro, etc. Estas celdas tienen una ubicación dentro de la hoja, que está fijada por las coordenadas de la misma, la esquina superior izquierda de la hoja es 0,0 y el resto de coordenadas pueden variar dependiendo de la unidad de medida que use el documento (cm, mm, etc).

En la siguiente imagen se ve un PDF y marcado con bordes rojos como podrían ser sus celdas.

*

Hola Mundo! en PDF con PHP

Después de tanta explicación, comienza la diversión. Haremos un pequeño PDF que muetre “Hola Mundo” en varios tamaños.

Las líneas más importantes del archivo son las siguientes:

require_once(“../classes/fpdf/fpdf.php”);

Aqui adjuntamos la clase para poder empezar a trabajar con ella, es obvio qie la ruta del archivo puede variar de acuerdo a donde tengais tu guardado el archivo FPDF.php

$myPDF = new FPDF(‘P’,’mm’,’Letter’);

Creamos una instancia de la clase FPDF bajo el nombre de $myPDF, a partir de aquí tendrémos que referirnos a nuestro objeto co ese nombre. Como puedes observar le hemos indicado 3 parámetros: la orientación de la hoja (“P” vertical o “L” horizontal), la unidad de medida para el documento (milímetros) y el tamaño de la hoja (“carta”).

$myPDF->AddPage();

Antes de empezar a poner contenido en el alrchivo, hay queañadir una hoja.

$myPDF->SetXY(0,10);

El método SetXY(), posiciona el puntero de dibujo en las coordenadas especificadas, estas deben de ir indicadas usando la unidad de medida especificada en el documento, esto significa que para ubicarnos a 1 centímetro del margen superior izquierdo, usariamos SetXY(10,10) ya que la unidad de medida es mm y 10 mm son 1 centimetro.

$myPDF->SetFont(‘Arial’,’B’,50);

Usando el método SetFont, se establece la fuente a “Arial”, negrita a 50. Recordad que el tamaño usa la unidad de medida del documento.

$myPDF->Cell(0,20,’Crear PDF con PHP’,0,0,’C’);

Aquí usamos el método Cell para colocar contenido en el archivo. Este método es quizá el más usado por la funcion que tiene. Como puedes ver le pasé 6 parámetos:

Cell(float $ancho, float $alto,string $texto,mixed $bordes,int $findelinea,string $alineacion’);

  • $ancho: Indica el ancho de la celda, usando la unidad de medida especificada en el constructor de clase. Si se especifica un 0 en el ancho, la celda ocupará desde la posisión actual hasta el margen derecho del documento
  • $alto: Indica el alto de la celda, usando la unidad de medida especificada en el constructor de la clase.
  • $texto: Indica el texto que ha de contener la celda.
  • $bordes: Indica si la celda dibuja el borde o no, en este caso puse un 0 para omitir los bordes.
  • $findelinea: Indica donde se comienza a dibujar la próxima celda que se construya, si ponemos un 1, indicamos que se dibuje abajo de la actual, si ponemos 0 se dibujará a un lado.
  • $alineacion: Indica la alineación que tendrá $texto dentro de la celda: “C” al centro, “L” a la izquierda y “R” a la derecha.

$myPDF->Output();

Enviamos el documento al navegador, a este método se le pueden aplicar ciertos parámetros que explicaré más adelante, en otro tutorial mas avanzado de FPDF.

El archivo completo disponible para su estudio, listo para descargar, esta aquí:

 

$myPDF = new FPDF(‘P’,’mm’,’Letter’);$myPDF->AddPage();
Anuncios

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