Los Documentos
PDF se han establecido en un estándar de las presentaciones de Texto en la Web,
ya que cada vez son más usados como reportes o presentación de documentos de
Texto.
En PHP existen
dos extensiones para crear PDF: PDFLib y ClibPDF, el cual son de pago o para
uso comercial; Por otro lado existe FDPF que es una clase escrita en PHP que
permite generar documentos PDF directamente desde PHP, esta librería es gratis
y libre, aunque no es tan rápida como las anteriores cumplen perfectamente las
expectativas para la creación de pdf’s.
En este tutorial
les enseñare como crear diferentes archivos PDF en PHP, para ello como ya les
mencione anteriormente haremos uso de la librería FPDF, además utilizaremos
AppServer (Ver Como Instalar AppServer), tal
como se muestra a continuación:
Herramienta Software:
- FPDF Descargar
1° En primer lugar descargar FPDF, luego
extráigalo, tal como se muestra en la imagen:
2° Después de extraer FPDF cópielo en el
Directorio “www”, ubicado en “C:\AppServ\www”, tal como se muestra
en la imagen:
* Luego de copiar la carpeta FPDF en el
Directorio especificado, empezaremos con el primer ejemplo en el que
mostraremos un Texto, tal como se muestra en la imagen:
FPDF
FPDF(string orientation, string unit, mixed size)
Descripción: Esta es la clase constructor. Permite establecer el formato de
página, la orientación y la unidad de medida es usada en todos los métodos.
AddPage
AddPage(string orientation, mixed size)
Descripción: Añade una nueva página al documento.
SetFont
SetFont(string family, string style, float
size)
Descripción: Establece la fuente usada para imprimir cadenas de caracteres. Es
obligatorio este método por lo menos una vez antes de imprimir texto o el
documento no será válido.
Cell
Cell(float w, float h, string txt, mixed border, int ln, string align, boolean fill, mixed link)
Descripción: Imprime una celda rectangular con bordes opcionales, color de fondo
y secuencia de caracteres, La esquina superior izquierda de la celda
corresponde a la posición actual.
Output
Output(string name, string dest)
Descripción: Envía el documento a un destino dado: una cadena, un fichero local
o al navegador.
* En el siguiente ejemplo mostraremos un
documento PDF con una cabecera con imagen, pie de página y un conjunto de
líneas de texto, tal como se muestra en la imagen:
Header
Header()
Descripción: Este método es usado para generar la cabecera de página. Es
automáticamente invocada por AddPage() y no debería ser invocada directamente
en la aplicación.
Image
Image(string file, float x, float y, float w, float h, string type, mixed link)
Descripción: Imprime una imagen en la página. Los formatos admitidos son: JPEG,
PNG y GIF.
Ln
Ln(float
h)
Descripción: Ejecuta un salto de línea. Por defecto, el valor es igual a la
altura de la última celda impresa.
Footer
Footer()
Descripción: Este método es usado para generar el pie de página. Es
automáticamente invocado por AddPage() y Close() y no debería ser invocado
directamente por la aplicación.
SetY
SetY(float y)
Descripción: Mueve la abscisa actual de regreso al margen izquierdo y establece
la ordenada. Si el valor es negativo, esta es relativa a la parte inferior de
la página.
PageNo
PageNo()
Descripción: Devuelve el número de página actual.
AliasNbPages
AliasNbPages(string alias)
Descripción: Define un alias para el número de páginas. El valor por efecto es:
{nb}.
* En el siguiente ejemplo mostraremos un
documento PDF con párrafos justificados, haciendo uso de colores y utilizando
un documento de texto externo, tal como se muestra en la imagen:
GetStringWidth
float GetStringWidth(string s)
Descripción: Devuelve la longitud de una cadena en la unidad del usuario. Una
fuente debe ser seleccionada.
SetX
SetX(float
x)
Descripción: Define la abscisa de la posición actual. Si el valor es negativo,
esta es relativa a la derecha de la página.
SetDrawColor
SetDrawColor(int r, int g, int b)
Descripción: Define el color usado para las operaciones de graficación (línea,
rectángulos y bordes de celdas). Este puede ser expresado en componentes RGB o
en escala de grises.
SetFillColor
SetFillColor(int r, int g, int b)
Descripción: Define el color por todas las operaciones de relleno (rectángulos
rellenos y fondos de celdas). Este puede ser expresado en componentes RGB o en
escala de grises.
SetTextColor
SetTextColor(int r, int g, int b)
Descripción: Define el color usado por el texto. Este puede ser expresado en
componentes RGB o en escala de grises.
SetLineWidth
SetLineWidth(float width)
Descripción: Define el ancho de la línea. Por defecto, el valor es igual a 0.2
mm. EL método puede ser llamado antes de la creación de la primera página y el
valor es retenido de página a página.
MultiCell
MultiCell(float w, float h, string txt, mixed border, string align, boolean
fill)
Descripción: Este método permite imprimir texto con saltos de línea. Cada vez
que la línea llega al extremo derecho de la celda o aparece un carácter de fin
de línea, se ejecuta un salto de línea y se crea automáticamente otra celda
debajo de la actual. El texto se encuentra justificado por defecto.
SetTitle
SetTitle(string title, boolean
isUTF8)
Descripción: Define el título del documento.
SetAuthor
SetAuthor(string autor, boolean isUTF8)
Descripción: Define el autor del documento.
* En el siguiente ejemplo mostraremos una
variante del ejemplo anterior, tal como se muestra en la imagen:
GetY
float GetY()
Descripción: Retorna la coordenada de la posición actual
SetLeftMargin
SetLeftMargin(float margin)
Descripción: Define el margen izquierdo. El método puede ser invocado antes de
la creación de la primera página.
AcceptPageBreak
boolean AcceptBreak()
Descripción: 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.
Este método es invocado automáticamente y no debería ser llamado directamente
por la aplicación.
* En el siguiente ejemplo mostraremos un
documento PDF con diferentes tipos de tablas que tiene FPDF, tal como se
muestra en la imagen:
La Primera
Tabla, es la forma más básica de construirla, tiene
un conjunto de celdas con bordes simples, todas del mismo tamaño y alineadas a
la izquierda; El resultado de la tabla tiene un diseño muy rudimentario, pero
es muy práctico.
La
Segunda Tabla, tiene algunas mejoras, comparando
con la tabla anterior, los títulos están centrados y el texto se alinea a la
derecha, las líneas horizontales se han eliminado, además en esta se pueden
definir el tamaño de las columnas.
La
Tercera Tabla, es similar a la segunda, con la
excepción de que esta tiene colores. El coloreado alternativo de las filas se
consigue alternando celdas transparentes y coloreadas.
En este ejemplo no se detalla los
diferentes métodos, ya que estos están explicados en los ejemplos anteriores.
* En este último ejemplo mostraremos un
documento PDF con enlaces internos y externos (Texto e Imagenes), además en
este ingresaremos texto en formato HTML, cuyas etiquetas reconocidas o las que
se interpretan son: <b>, <i>, <u>, <a> y <br>,
las demás se ignoran; tal como se muestra en la imagen:
Write
Write(float h, string
txt, mixed link)
Descripción: 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.
AddLink
int AddLink()
Descripción: Crea una nueva referencia interna y retorna su identificador. Una
referencia interna es un área seleccionable la cual lo dirige a otro lugar
dentro del documento.
SetLink
SetLink(int link, float y, int page)
Descripción: Define la página y posición al que un enlace hace referencia.
SetFontSize
SetFontSize(float size)
Descripción: Define el tamaño de la fuente actual.
Para estos ejemplos me he basado en la
información que muestra FPDF en su Sitio Oficial.
Nota: Cualquier
consulta comentar o visitar la página de Facebook para resolver sus dudas…
Autor: SPaRk.
No hay comentarios:
Publicar un comentario