generacion de pdf en php con fpdf

29
Documentos PDF en PHP5 Generación de PDF en PHP con FPDF 1.6 Agustín Ríos Reyes 02/04/2009 Describe la forma de cómo usar la librería FPDF 1.6 con PHP5 para generar archivos PDF para mostrar información en la web, describe los métodos mediante ejemplos. 1.6 PHP PDF

Upload: luis-jaime-benavides-pinilla

Post on 24-Oct-2015

338 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Generacion de PDF en PHP Con FPDF

Documentos PDF en PHP5

Generación de PDF en PHP con FPDF 1.6

Agustín Ríos Reyes

02/04/2009

Describe la forma de cómo usar la librería FPDF 1.6 con PHP5 para generar archivos PDF para mostrar información en la web, describe los métodos mediante ejemplos.

1.6

PHP

5

PDF

Page 2: Generacion de PDF en PHP Con FPDF

2

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

ÍNDICE

Introducción…………………………………………………...…………………………………3

Librería FPDF……………………………………………………………………………………3

Métodos de la clase FPDF………………………………………………………………..………4

Nuestro primer documento ……………………………………………..………………………17

Desplazamiento de los cursores………………………………………………...………….……18

Sobrescribir los Métodos……………………………………………………………….….……20

Cabecera…………………………………………..……………………………………….……20

Imagen de cabecera…………………………………………………………………………..…21

Pie de página………...………………………………………………………………………..…22

Colores de Texto, Rellenos, Bordes y Saltos de Línea ………………………………………...24

Tablas………………………………………………………………………………..…….……27

Obtención de datos de una Base d Datos ……………………………………….………………28

Page 3: Generacion de PDF en PHP Con FPDF

3

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Introducción

Como probablemente ya sabe, el HTML no es el único formato para mostrar contenido en

Internet. Además de los distintos tipos de imágenes, tenemos varios formatos capaces de

contener textos como Adobe PDF, Macromedia Flash o algunos documentos alternativos

escritos en XML como los archivos gráficos SVG (Gráficos Vectoriales Escalables), WML

(Lenguaje de Marcas Inalámbrico) o XUL (Lenguaje de interfaz de Usuario en XML con

Mozilla). Cada uno de estos tipos de documentos tiene su propio terreno y de nosotros depende

elegir cuál o cuáles utilizar para dotar a nuestra Web de mayores posibilidades.

Los archivos Adobe PDF se han establecido como un estándar en los documentos de texto para

la Web.

Existen dos extensiones escritas para PHP, PDFLib y ClibPDF, capaces de generar archivos

PDF. Desgraciadamente estas librerías son de uso comercial y requieren el pago de algún tipo

de licencia.

Además de las extensiones anteriores, tenemos una serie de aplicaciones escritas completamente

en PHP que permiten llegar al mismo resultado, como R&OS PDF o FPDF. No son tan rápidas

como las extensiones, pero cumplen perfectamente nuestras expectativas.

Librería FPDF

La librería FPDF, creada en septiembre de 2001(su versión más actual es la 1.6 escrita en

septiembre del 2008), no necesita licencia de uso, ni tampoco alguna configuración especial de

PHP. Lo único que necesita es la librería, que la puede descargar del sitio Web

http://www.fpdf.org.

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): puede

usted usarla para cualquier propósito y modificarla a su gusto para satisfacer sus necesidades.

FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principales

características:

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

FPDF no necesita de ninguna extensión para PHP (excepto zlib para activar la compresión y GD

para soporte a GIF) y funciona con PHP4 y PHP5.

Page 4: Generacion de PDF en PHP Con FPDF

4

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

La librería principal contiene la definición de una clase, que debe instanciar para poder generar

sus documentos. Nuestro código inicial debería ser algo parecido a:

El constructor se utiliza de esta forma con los valores por defecto que son página A4 con

orientación vertical y el tamaño medido en milímetros. El primer parámetro del constructor

permite elegir entre orientación vertical (L) u horizontal (P). El segundo parámetro sirve para

que las medidas de referencia se hagan en base a puntos (pt), milímetros (mm), centímetro

(cm) o pulgadas (in). El último parámetro nos ofrece la oportunidad de elegir entre los

diferentes formatos de página que existen: A3, A4, A5, Letter y Legal.

Métodos de la clase FPDF

El constructor de la clase:

Permite establecer el formato de página, la orientación y la unidad de medida usada en todos los

métodos (excepto para tamaños de fuentes).

FPDF([string orientation [, string unit [, mixed format]]])

Parámetros

Orientation: 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.

Unit: 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.

Format: El formato usado por las páginas. Es puede ser uno de los siguientes valores

(indiferente a mayúsculas):

A3

A4

A5

Letter

Legal

Page 5: Generacion de PDF en PHP Con FPDF

5

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

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).

Método Addpage()

Añade una nueva página al documento. El origen del sistema de coordenadas es la esquina

superior izquierda y se incrementan hacia abajo.

AddPage([string orientation ,[ mixed format]])

Parámetros

Orientation: Orientación de página. Los valores posibles son (indiferente a mayúsculas):

P o Portrait (normal)

L o Landscape (apaisado)

El valor por defecto el mismo que que se ha pasado al constructor.

Format: Formato de página. Puede ser uno de los siguientes valores (indiferente a mayúsculas):

A3

A4

A5

Letter

Legal

O un array conteniendo el ancho y el alto (en unidades definidas por el usuario).El valor por

defecto es el que fue pasado al constructor.

Método Header()

Este método es usado para generar la cabecera de página. Es automáticamente invocada por

AddPage() y no deberia ser invocada directamente en la aplicación. La implementación en

FPDF es vacia, asi que si desea un procesamiento especifico debe generar una subclase y

sobreescribir el método.

Método Footer()

Este método es usado para generar el pie de página. Es automáticamente invocado por

AddPage() y Close() y no sebería ser invocado directamente por la aplicación. La

implementación en FPDF es vacia, así que si desea un procesamiento específico debe hacer

subclase y sobreescribir el método.

Page 6: Generacion de PDF en PHP Con FPDF

6

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Método SetMargins

SetMargins(float left, float top [, float right])

Define los márgenes izquierdo, superior, y derecho. Por defecto, son iguales a 1 cm. Invoque

este método para cambiarlas.

Parámetros

left: Margen izquierdo.

top: Margen superior.

right: Margen derecho. Valor por defecto es el mismo que el de la izquierda.

Método SetFont

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

Establece la fuente usada para imprimir cadenas de caracteres. Es obligatorio invocar este

método por lo menos una vez antes de imprimir texto o el documento resultante no será válido.

La fuente puede ser una estándar o una adicionada vía el método AddFont(). La fuentes estándar

usan codificación cp1252 (Western Europe) de Windows.

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().

Nota: Para las fuentes estándar, los archivos de métrica de fuente deben ser accesibles. Se

buscan en este orden:

El directorio especificado por la constante FPDF_FONTPATH (si es que ha sido

definida)

El directorio de fuentes incluido en el directorio que contiene fpdf.php (si es que

existe)

Cualquier directorio accesible mediante include()

Ejemplo del primer casa (note la barra diagonal final):

Si el archivo correspondiente a la fuente requerida no es encuentra, se genera el error "Could not

include font metric file".

Page 7: Generacion de PDF en PHP Con FPDF

7

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Parámetros

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.

Método AddFont

AddFont(string family [, string style [, string file]])

Importa una fuente TrueType o Type1 y la hace disponible. Es necesario primero generar un

archivo de definición de fuente con la utilidad makefont.php.

El archivo de definición (y el archivo de fuente mismo cuando es incorporado) debe estar

presente en el directorio de fuentes. Si no puede ser encontrado, es generado el error "Could not

include font definition file".

Parámetros

Family: Familia de fuente. El nombre puede ser elegido de forma arbitraria.

Style: Estilo de fuente. Los valores posibles son (case insensitive):

cadena vacía: regular

B: bold (negrita)

I: italic (cursiva)

BI o IB: bold italic (negrita cursiva)

El valor por defecto es regular.

Page 8: Generacion de PDF en PHP Con FPDF

8

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

File: El archivo de definición de fuente. Por defecto, el nombre es compuesto de la familia y

estilo de fuente, en minúsculas y sin espacios.

Método SetFontSize

SetFontSize(float size)

Define el tamaño de la fuente actual.

Parámetros

Size: El tamaño (en puntos).

Método SetTextColor

SetTextColor(int r [, int g, int b])

Define el color usado por el texto. Este puede ser expresado en componentes RGB o escala de

grises. El método puede ser invocado antes que la primera página sea creada y el valor es

retenido de página a página.

Parámetros

r: Si g y b son suministrados, componente rojo; si no, si no indica nivel de grises. Valores entre

0 y 255.

g: Componente verde (entre 0 y 255)

b:Componente azul (entre 0 y 255)

Método SetFillColor

SetFillColor(int r [, int g, int b])

Define el color usado por todas las operaciones de relleno (rectángulos rellenos y fondos de

celdas). Este puede ser expresado en componentes RGB o escala de grises. El método puede ser

invocado antes que la primera página sea creada y el valor es conservado de página a página.

Parámetros

r: Si g y b son suministrados, componente rojo; si no, si no indica nivel de grises. Valores entre

0 y 255.

g: Componente verde (entre 0 y 255)

b:Componente azul (entre 0 y 255)

Método SetDrawColor

SetDrawColor(int r [, int g, int b])

Define el color usado para las operaciones de graficación (lineas, rectangulos, y bordes de

celdas ). Este puede ser expresado en componentes RGB o en escala de grises. El método puede

Page 9: Generacion de PDF en PHP Con FPDF

9

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

ser invocado antes de que la primera página sea creada y el valor sea conservado de página a

página.

Parámetros

r: Si g y b son suministrados, componente rojo; si no, si no indica nivel de grises. Valores entre

0 y 255.

g: Componente verde (entre 0 y 255)

b:Componente azul (entre 0 y 255)

Método Text

Text(float x, float y, string txt)

Imprime una cadena de caracteres. El origen es a la izquierda del primer carácter, sobre la línea

base. Este método permite colocar una cadena precisamente en la página, pero es usualmente

más fácil usar Cell(), MultiCell() o Write() los cuales son los métodos estándares para imprimir

texto.

Parámetros

X:Abscisa del origen.

Y: Ordenada del origen.

txt: Cadena a ser impresa.

Método Cell

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

link]]]]]]])

Imprime una celda (de área rectangular) bordes opcionales, color de fondo y secuencia de

caracteres La esquina superior izquierda de la celda corresponde a la posición actual. El texto

puede ser alineado o centrado. Después 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 esta 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.

Parámetros

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:

Page 10: Generacion de PDF en PHP Con FPDF

10

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

0: sin borde

1: marco

o una cadena contenido alguno o todos 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 actual 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 después Ln(). Valor por defecto: 0.

Align: Permite centrar o alinear el texto. Los posibles valores son:

L o una cadena vacía: 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().

Método MultiCell

MultiCell(float w, float h, string txt [, mixed border [, string align [, boolean fill]]])

Este método permite imprimir texto con saltos de línea. Estos pueden ser automáticos (tan

pronto como el texto alcanza el borde derecho de la celda) o explícito (vía el carácter \n). Tantas

celdas como sean necesarias son creadas, uno debajo de otra.

El texto puede ser alineado, centrado o justificado. El bloque de celda puede ser enmarcado y el

fondo impreso.

Parámetros

W: Ancho de celdas. Si 0, estos se extienden hasta l margen derecha de la página.

H: Alto de las celdas.

Txt: Cadena para imprimir.

Border: Indica si los bordes deben ser dibujados al rededor del bloque la celda. El valor puede

ser un número:

0: no borde

1: marco

Page 11: Generacion de PDF en PHP Con FPDF

11

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

O una cadena conteniendo algún o todos los siguientes caracteres (en cualquier orden):

L: izquierda

T: superior

R: derecha

B: inferior

Valor por defecto: 0.

Align: Establece la alineación de texto. Los posibles valores son:

L: alineación a la izquierda

C: centrado

R: alineación a la derecha

J: justificación (valor por defecto)

Fill: Indica si el fondo de la celda debe ser dibujado (true) o transparente (false). Valor por

defecto: false.

Método Write

Write(float h, string txt [, mixed link])

Este método imprime el texto desde la posición actual. Cuando el margen derecho es alcanzado

(o el carácter \n es alcanzado) se produce un salto de línea y el texto continúa desde el margen

izquierdo. Una vez el método termine, la posición actual es dejada justo al final del texto.

Es posible poner una referencia sobre el texto.

Parámetros

H:Alto de línea.

Txt: Cadena a ser impresa.

Link: URL o identificador regresado por AddLink()

Método SetAutoPageBreak

SetAutoPageBreak(boolean auto [, float margin])

Activa o desactiva el modo de salto de página automático. Cuando es habilitado, el segundo

parámetro es la distancia de la parte inferior de la página que define al límite desencadenante.

Por defecto, el modo esta activado y el margen es 2cm.

Parámetros

Auto: Boleano indicando si el modo debería ser activado o desactivado.

Margin: Distancia desde la parte inferior de la página

Page 12: Generacion de PDF en PHP Con FPDF

12

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Método AcceptPageBreak

boolean AcceptPageBreak()

En cualquier momento que un salto de página es encontrado, es invocado el método, y el salto

es emitido o no dependiendo del valor retornado. La implementación por defecto retorna un

valor de acuerdo a el modo seleccionado por SetAutoPageBreak().

Este método es invocado automáticamente y no debería ser llamado directamente por la

aplicación.

Método Ln

Ln([float h])

Ejecuta un salto de línea. La abscisa actual regresa al margen izquierdo y la ordenada aumenta

en la cantidad pasada como parámetro.

Parámetros

H: La altura del salto. Por defecto, el valor es igual a la altura de la última celda impresa.

Método Output

string Output([string name, string dest])

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.

Parámetros

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.

Método Close

Close()

Termina el documento pdf. No es necesario llamar explícitamente este método debido a que

Output() lo hace de forma automática.

Si el documento no contiene páginas, es invocado AddPage() para prevenir obtener un

documento inválido.

Page 13: Generacion de PDF en PHP Con FPDF

13

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Método Image

Image(string file [, float x [, float y [, float w [, float h [, string type [, mixed link]]]]]])

Imprime una imagen en la página. Las dimensiones pueden establecerse de diferentes maneras:

mediante la especificación explícita de ancho y alto (en unidades definidas por el

usuario)

mediante la indicación de una sola de las dimensiones: la otra se calculará

automáticamente para mantener la proporción original

sin indicar ninguna dimensión explícita. En este caso, la imagen se imprime a 72 puntos

por pulgada

Los formatos admitidos son JPEG, PNG y GIF. La extensión GD es necesaria para GIF.

Para el JPEG, se admiten todas sus versiones:

escala de grises

color verdadero (24 bits)

CMYK (32 bits)

Para el PNG se permiten:

escala de grises de 8 bits como máximo (256 niveles)

color indexado

color verdadero (24 bits)

pero no se admite:

entrelazado

transparencia (canal Alfa)

Para el GIF: en el caso de un GIF animado, sólo el primer fotograma se utilizará.

Si se definiera un color como transparente, se tomará en cuenta.

El formato puede ser especificado explícitamente o deducido a partir de la extensión del fichero.

Es posible asociar un enlace a la imagen.

Nota: si una imagen se usa varias veces, sólo se incluirá una copia en el fichero resultante.

Parámetros

File:Nombre del fichero que contiene la imagen.

X: Abscisa de la esquina superior izquierda. Si no se especifica o es igual a null, se utilizará la

abscisa actual.

Y: Ordenada de la esquina superior izquierda. Si no se especifica o es igual a null, se utilizará la

ordenada actual, además, un salto de página es invocado primero si es necesario (en caso de que

Page 14: Generacion de PDF en PHP Con FPDF

14

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

esté habilitado el salto de página automático) y, después de la llamada, la ordenada actual se

mueve a la parte inferior de la imagen.

W: Ancho de la imagen en la página. Si no se especifica o es cero, se calcula automáticamente.

H: Alto de la imagen en la página. Si no se especifica o es cero, se calcula automáticamente.

Type: Formato de la imagen. Los posibles valores son (indiferente a mayúsculas): JPG, JPEG,

PNG y GIF. Si no se especifica, el tipo se deduce de la extensión del fichero.

Link:URL o identificador devuelto por el método AddLink().

Método Line

Line(float x1, float y1, float x2, float y2)

Traza una línea entre dos puntos.

Parámetros

x1: Abscisa del primer punto.

y1: Ordenada del primer punto.

x2: Abscisa del segundo punto.

y2: Ordenada del segundo punto.

Método Link

Link(float x, float y, float w, float h, mixed link)

Pone una referencia a un área rectangular de la página. El texto o la imagen referenciada son

generalmente puesta via Cell(), Write() o Image(), pero este método puede ser útil por ejemplo

para definir un área seleccionable dentro una imagen.

Parámetros

X: Abscisa de la esquina superior izquierda del rectángulo.

Y: Ordenada de la esquina superior izquierda del rectángulo.

W: Ancho del rectángulo.

H: Alto del rectángulo.

Link: URL o identificador regresada por AddLink().

Método PageNo

int PageNo()

Devuelve el número de página actual.

Page 15: Generacion de PDF en PHP Con FPDF

15

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Método AliasNbPages

AliasNbPages([string alias])

Define un alias para el número total de páginas. Se sustituira en el momento que el documento

se cierre.

Parámetros

Alias: El alias. Valor por defecto: {nb}.

Método SetAuthor

SetAuthor(string author [, boolean isUTF8])

Define el autor del documento.

Parámetros

Autor:El nombre del autor.

isUTF8:Indica si la cadena está codificada en la norma ISO-8859-1 (false) o UTF-8 (true).

Valor por defecto: false.

Método SetCreator

SetCreator(string creator [, boolean isUTF8])

Define el creador de el documento. Este es típicamente el nombre de la aplicación que genera el

pdf.

Parámetros

Creator: El nombre del creador.

isUTF8: Indica si la cadena está codificada en la norma ISO-8859-1 (false) o UTF-8 (true).

Valor por defecto: false.

Método SetSubject

SetSubject(string subject [, boolean isUTF8])

Define el tema del documento.

Parámetros

Subject:El tema.

isUTF8: Indica si la cadena está codificada en la norma ISO-8859-1 (false) o UTF-8 (true).

Valor por defecto: false.

Page 16: Generacion de PDF en PHP Con FPDF

16

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Método SetTitle

SetTitle(string title [, boolean isUTF8])

Define el título de el documento.

Parámetros

Title: El título.

isUTF8: Indica si la cadena está codificada en la norma ISO-8859-1 (false) o UTF-8 (true).

Valor por defecto: false.

Método SetX

SetX(float x)

Define la abscisa de la posición actual. Si el valor pasado es negativo, esta es relativa a la

derecha de la página.

Parámetros

X: El valor de la abscisa.

Método SetY

SetY(float y)

Mueve la abscisa actual de regreso al márgen izquierdo y establece la ordenada. Si el valor

pasado es negativo, esta es relativa a la parte inferior de la página.

Parámetros

Y: El valor de la ordenada.

Método SetXY

SetXY(float x, float y)

Define la abscisa y ordenada de la posición actual. Si los valores pasados son negativos, ellos

son relativos respectivamente a la derecha y la parte inferior de la página.

Parámetros

X: El valor de la abscisa.

Y: El valor de la ordenada.

Page 17: Generacion de PDF en PHP Con FPDF

17

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Método GetX

float GetX()

Retorna la abscisa de la posición actual.

Método GetY

float GetY()

Retorna la ordenada de la posición actual.

Nuestro primer documento

El siguiente ejemplo muestra la creación básica de un documento PDF de forma lineal, el cual

imprime un texto en una celda con márgenes y con el texto centrado.

La primera línea define una constante que contiene la ruta donde están almacenadas las fuentes.

Después de las funciones que incluyen la clase y la instancia del objeto tenemos una serie de

llamadas a métodos que nos permiten manipular el documento a nuestro antojo.

El método AddPage () añade una página al documento con la orientación que Le pida. En este

caso hemos añadido una con orientación vertical, que es la elegida por defecto. SetFont()

selecciona una fuente tomando como parámetro el tipo, la propiedad (negrita, cursiva) y el

tamaño. Por último tenemos una llamada a los métodos Cell () y Output (), que escriben el texto

en una posición determinada del documento y lo muestran en pantalla respectivamente, como

puede ver en la figura.

Page 18: Generacion de PDF en PHP Con FPDF

18

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Desplazamiento de los cursores

Existen varias funciones para colocar el cursor en distintas partes del documento. SetX() y

SetY() colocan el texto en el punto indicado, en la medida seleccionada (centímetros,

milímetros, etc).

SetX () desplaza el cursor de izquierda a derecha tantas unidades como indique el parámetro y

SetY() de arriba hacia abajo. Si se les pasa un número negativo, el origen se tomará desde la

derecha o desde abajo respectivamente.

SetXY() toma dos valores y permite realizar las dos operaciones con una sola instrucción.

Page 19: Generacion de PDF en PHP Con FPDF

19

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Page 20: Generacion de PDF en PHP Con FPDF

20

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Sobrescribir los Métodos

La clase FPDF contiene algunos métodos vacíos que debe escribir usted si quiere que sus

documentos queden profesionales. Puede crear un objeto propio que herede del objeto FPDF e

implementar algunas características avanzadas.

Cabecera

La cabecera de un documento es un conjunto de texto escrito en la parte superior del folio y que

debe aparecer en todas las páginas. La clase FPDF implementa el método header () que se llama

cada vez que existe un salto de página.

Puesto que el método está vacío en FPDF, tendrá que crear un objeto nuevo que herede todos

sus métodos e implemente la cabecera.

El método header() configura un tipo de letra determinado, en negrita, avanza el cursor 8

centímetros hacia la derecha e imprime una celda con el título.

El método Ln(20) inserta un salto de línea cuya altura es determinada por el argumento.

Para probar el objeto hemos hecho un bucle que imprime 48 líneas (dos páginas) y así

comprobar que la cabecera aparece invariable. El resultado se puede observar en la figura

Page 21: Generacion de PDF en PHP Con FPDF

21

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Imagen de cabecera

También es posible añadir una imagen a la cabecera con el método Image(). La construcción es

la siguiente:

Image(fichero, x, y, ancho, alto, tipo, enlace)

Ahora que sabe cómo insertar imágenes, puede incluir en la cabecera el logotipo de su empresa

o asociación.

Page 22: Generacion de PDF en PHP Con FPDF

22

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Pie de página De la misma forma, puede sobrescribir el método que imprime el pie de página de la clase

FPDF.

Este método recibe el nombre de Footer() y tiene el mismo tratamiento que la cabecera; cada

vez que existe un salto de página se hace una llamada al mismo.

Nuestro pie de página puede quedar de la siguiente forma:

Page 23: Generacion de PDF en PHP Con FPDF

23

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

El método AliasNbPages () cuenta el número de páginas cuando el documento está cerrado y

sustituye la marca {nb} por este número.

Los dos script juntos mostrarían algo como lo siguiente.

Page 24: Generacion de PDF en PHP Con FPDF

24

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Colores de Texto, Rellenos, Bordes y Saltos de Línea

En este ejemplo veremos cómo agregar color al texto con el método SetTextColor(), agregar

color de relleno a las celdas con el método SetFillColor(). Agregar color alos bordes con el

método SetDrawColor() y los saltos de línea con el método Ln(). Para esto el ejemplo abre unos

archivos y agrega su contenido el PDF, esto se veria algo asi.

El código es el siguiente:

Page 25: Generacion de PDF en PHP Con FPDF

25

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Page 26: Generacion de PDF en PHP Con FPDF

26

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Se definen dos propiedades del documento: título (SetTitle()) y autor (SetAuthor()). Las

propiedades pueden verse de dos maneras. La primera es abrir el documento directamente con

Acrobat Reader, vaya al menú Archivo y seleccione la opción Propiedades del documento. La

segunda, también disponible desde el plug-in, es hacer clic con el botón derecho y seleccione

Propiedades del documento. Usare el segundo método, el cual muestra la siguiente pantalla:

Page 27: Generacion de PDF en PHP Con FPDF

27

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

Tablas

Una tabla no es más que un conjunto de celdas colocadas en un orden determinado. Podemos

diferenciar entre la cabecera de la tabla, que contendrá las propiedades, y los datos. Si realiza

una clase para escribir tablas puede hacer también esa diferenciación, cambiando el tipo de letra,

el tamaño o el color. El código siguiente muestra cómo se puede instaurar una clase para la

creación de tablas fácilmente:

Page 28: Generacion de PDF en PHP Con FPDF

28

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

El resultado es el siguiente:

En este caso, los datos se sacan de un array de dos dimensiones, pero puede utilizar la librería de

bases de datos o la de XML, para extraerlos.

Los datos los recibe el método tabla ( ), que los envía a sus correspondientes métodos para ser

tratados. El funcionamiento básico consiste en la creación repetitiva de celdas cuyo número

coincidirá con el número de datos existentes en el array. Todas las celdas se muestran seguidas,

dando sensación de ser una tabla, como puede ver en la figura.

Obtención de datos de una Base d Datos

Para este ejemplo crearemos una base de datos que se llama calificaciones, la cual contiene una

tabla llamada califica. La cual conste de 4 registros “id_alumno, nombre, grupo, promedio”.

La que mostraremos de la tabla será el nombre y el promedio del alumno, esto quedaría algo así:

Page 29: Generacion de PDF en PHP Con FPDF

29

Generación de PDF en PHP5 con FPDF 1.6

www.fpdf.org

http://es.php.net

Agustín Ríos Reyes

[email protected]

http://www.computadorasmilenio.net/manuales/

El resultado sería el siguiente:

La generación de sus propios archivos ya no es un misterio y puede implementar clases muchos

más potentes que las mostradas en este manual para sus propios proyectos. La inclusión de

colores, imágenes y tablas de distintos tipos harán del lector un profesional de la edición Web.