Creando archivos pdf con php

22 de octubre de 2011

 

Es posible crear un archivo pdf con php. Existen varias clases para realizar esa tarea pero en este tutorial se utiliza fpdf.

fpdf se puede descargar gratuitamente desde:

http://www.fpdf.org

La clase fpdf se integra por el archivo:

fpdf.php

Adicionalmente hace uso de los archivos:

courier.php
helveticabi.php
helveticab.php
helveticai.php
helvetica.php
symbol.php
timesbi.php
timesb.php
timesi.php
times.php
zapfdingbats.php

Estos archivos se almacenan en la carpeta / directorio "font" y su función es proporcionar letras / fuentes para crear los archivos pdf.

Para instalar fpfd solamente basta subir al servidor el archivo fpdf.php y la carpeta con las fuentes.

El archivo fpdf.php se puede subir al directorio raíz o a un directorio propiol.

Los archivos de fpdf

El archivo ejemplo-01.php incluye esté código que crea un pdf muy sencillo:


<?
// archivo ejemplo-01.php

require('./fpdf/fpdf.php'); 
// importa la clase

$pdf=new FPDF(); 
// crea un nuevo pdf

$pdf->AddPage(); 
// agrega una página al pdf

$pdf->SetFont('Arial','B',16); 
//define el tipo, estilo y tamaño de fuente / letra a utilizar

$pdf->Cell(40,10,'Hello World!'); 
// crea una celda / cuadro con la frase "Hello World"

$pdf->Output(); 
// genera el pdf

?>

Este es el archivo pdf resultado de este código.

pdf generado con fpdf y php
Descargar pdf

A continuación se explica línea por línea el código anterior. En color se señala lo que NO DEBE MODIFICARSE pues son las funciones predefinidas de FPDF.

require('./fpdf/fpdf.php');

Importa la clase. Debe respetarse la ruta correcta en donde se localiza fpdf. En este caso en el directorio raíz se creó el archivo ejemplo-01.php. Dentro del directorio raíz se creó la carpeta fpdf y ahí se guardó el archivo fpdf.php.

$pdf=new FPDF();

Crea un nuevo pdf. FPDF() es una función predefinida de fpdf. El nuevo pdf se almacenará en la variable $pdf, el nombre de esta variable puede cambiarse pero a lo largo del código deberá usarse el mismo valor para evitar errores.

$pdf->AddPage();

Los archivos pdf tienen páginas, pueden tener una o varias. Con AddPage() se agrega una página al archivo pdf que se creará.

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

Define el tipo, estilo y tamaño de fuente / letra a utilizar.

La función SetFont usa las variables tipo, estilo y tamaño: SetFont(tipo,estilo,tamaño).

En este caso el tipo de letra a usar es Arial. En la carpeta "fonts" están las fuentes disponibles. Sólo se pueden usar fuentes que existan en la carpeta "fonts". Es posible crear más fuentes pero se debe seguir el procedimiento determinado para crear la fuente pues no basta con subir al servidor un archivo True Type.

Los estilos disponibles son normal, negritas e itálicas. En este ejemplo se usó el estilo negritas. Para usar texto normal se debe escribir '', para itálicas se debe escribir 'I'.

En este ejemplo se usó el tamaño de 16 puntos.

$pdf->Cell(40,10,'Hello World!');

Crea una celda / cuadro con la frase "Hello World".

En este ejemplo la función Cell usa las variables ancho de la celda, alto de la celda y texto a mostrar: Cell(ancho,alto,texto). Los valores del ancho y alto de la celda se definen por omisión en milímetros.

fpdf divide a la hoja en celdas / cuadro para desplegar la información en el archivo pdf .

Con este gráfico pretende aclarar las cosas. La hoja se divide en celdas:

las celdas en fpdf

Y en cada celda se puede añadir contenido.

$pdf->Output();

Genera el archivo pdf.

Se puede insertar una imagen al pdf. Para ello se usa la función: Image()

El archivo ejemplo-02.php incluye esté código que inserta una imagen al pdf :

<?
// archivo ejemplo-02.php

require('./fpdf/fpdf.php'); 
// importa la clase

$pdf=new FPDF(); 
// crea un nuevo pdf

$pdf->AddPage(); 
// agrega una página al pdf

$pdf->Image('logo.jpg',20,8); 
// agrega una imagen al pdf

$pdf->Ln(50); 
// hace un salto de línea

$pdf->SetFont('Arial','B',16); 
//define el tipo, estilo y tamaño de fuente / letra a utilizar

$pdf->Cell(40,10,'Hello World!'); 
// crea una celda / cuadro con la frase "Hello World"

$pdf->Output(); 
// genera el pdf
?>

Al código del ejemplo anterior se le añadieron las líneas:

$pdf->Image('logo.jpg',20,8);

y

$pdf->Ln(50);

A continuación se explica línea por línea el código anterior. En color se señala lo que NO DEBE MODIFICARSE pues son las funciones predefinidas de FPDF.

$pdf->Image('logo.jpg',20,8);

Agrega una imagen al pdf.

En este ejemplo la función Image usa las variables archivo, posición en el plano x y posición en el plano y: Cell(archivo,posicion_en_x,posicion_en_y). Los valores de la posición en el plano x y en el plano y se definen por omisión en milímetros.

fpdf puede importar archivos jpg y png solamente.

El valor de archivo debe incluir la ruta correcta hacia la imagen. En este caso la imagen se encuentra en el mismo directorio que el archivo ejemplo-02.php

$pdf->Ln(50);

Inserta un salto de línea.

En este ejemplo la función Ln usa la variable tamaño del salto de línea: Ln(tamaño_salto_linea). Los valores del tamaño del salto de línea se definen por omisión en milímetros.

Este es el archivo pdf resultado de este código:

pdf con imagen generado con fpdf y php
Descargar pdf

Usando la capacidad de fpdf para dividir la hoja en celdas se pueden crear diseños más elaborados como este archivo pdf:

pdf con formato creado con fpdf y php
Descargar pdf

fpdf incluye más funciones que facilitan la tarea de crear archivos pdf. Es posible cambiar el color de los textos, de las celdas, agregar encabezados, pies de página y numeración a todos las hojas automáticamente.

Más aún fpdf puede aprovechar los recursos de php para, por ejemplo, generar automáticamente un reporte con los datos almacenados en una base de datos mysql y guardarlo en un archivo pdf.

Sitios de interés:

fpdf

Clase para generar pdf con php. El sitio está en español e incluye una guía y ejemplos de todas las funciones disponibles


Comenta y opina este texto     Lee mi libro de visitas
© 1997-2014 Alain García Gómez
albegago@hotmail.com
El vínculo a este documento es:
http://www.alaingarcia.net/weird/pdf_crear.php

Suscribase a nuestro RSS

Puedes apoyar a este sitio regalándome una c3rvez4