En este artículo seguimos viendo funcionalidades de la librería FPDF de PHP, en este caso para construir enlaces dentro de los documentos PDF.
En este capitulo del manual de Crear PDF en PHP con FPDF vamos a ver las tres funciones que nos permiten crear enlaces internos y externos en nuestros documentos pdf. En el artículo anterior haciamos una pequeña introducción ya que las utilizábamos en alguno de los ejemplos, bueno pues ahora los veremos detenidamente.
AddLink
Esta función nos permite crear un identificador que más tarde utilizaremos para crear un enlace interno a la página.Su sintaxis es bastante sencilla ya que no requiere que se le pase ningún parámetro.
int AddLink()
El identificador resultante puede ser pasado a las funciones Cell(), Write(), Image() o Link(). El destino se define con SetLink().
SetLink
Nos define la posición y la pagina a la que un enlace hace referencia.
Su sintaxis es la siguiente:
SetLink(int link [, float y [, int page]])
Donde:
- link: identificador obtenido mediante AddLink()
- y: posición donde se encuentra la sección a la que hace referencia el enlace. El valor por defecto es 0 y nos sitúa en la parte superior de la página.
- page: el número de la página a la que nos lleva el enlace.
Tenemos que tener en cuenta que esto es para enlaces internos dentro del documento.
Para que entendáis mejor estas funciones vamos a poner un ejemplo que crea dos paginas con un logo(con enlace externo) en la cabecera y un enlace interno.
<?php
require('../librerias/fpdf/fpdf.php');
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
$this->Image("leon.jpg" , 10 ,8, 35 , 38 , "JPG" ,"http://www.desarrolloweb.com");
//Arial bold 15
$this->SetFont('Arial','B',15);
//Movernos a la derecha
$this->Cell(80);
//Título
$this->Cell(60,10,'Titulo del archivo',1,0,'C');
//Salto de línea
$this->Ln(20);
}
//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',8);
//Número de página
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
//Primera página
$pdf->AddPage();
$pdf->SetFont('Arial','',15);
$pdf->Cell(40,20);
$pdf->Write(5,'Para ir a la página 2, pulse ');
$pdf->SetFont('','U');
$link=$pdf->AddLink();
$pdf->Write(5,'aquí',$link);
$pdf->SetFont('');
//Segunda página
$pdf->AddPage();
$pdf->SetLink($link);
$pdf->Output();
?>
Link
La función link() se utiliza generalmente para colocar un enlace en una parte concreta de una imagen, ya que puedes seleccionar el área concreta de acción de dicho link. Hay que tener en cuenta que siempre sera un rectángulo.Su sintaxis es la siguiente:
Link(float x, float y, float w, float h, mixed link)
Donde:
- x: Abscisa de la esquina superior izquierda.
- y: Ordenada de la esquina superior izquierda.
- w: Ancho del rectángulo
- h: alto del rectángulo
- link: Url o identificador devuelto por AddLink().
Podríamos poner un enlace dentro de una imagen de la siguiente forma:
<?php
require('../librerias/fpdf/fpdf.php');
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
$this->Image("leon.jpg" , 10 ,8, 35 , 38 , "JPG" );
//Arial bold 15
$this->SetFont('Arial','B',15);
//Movernos a la derecha
$this->Cell(80);
//Título
$this->Cell(60,10,'Titulo del archivo',1,0,'C');
//Salto de línea
$this->Ln(20);
}
//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',8);
//Número de página
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
//Creación del objeto de la clase heredada
$pdf=new PDF();
$pdf->AliasNbPages();
//Primera página
$pdf->AddPage();
$pdf->SetFont('Arial','',15);
$pdf->Link(10,8,10,10,"http://www.recetasparatodos.com.es");
$pdf->Output();
?>
Como podéis comprobar hemos partido de la cabecera y el pie del articulo anterior y hemos conseguido que el enlace en la imagen solo sea un recuadro en la parte superior izquierda.
En la próxima entrega del manual aprenderás a acceder a archivos de texto y mostrarlos dentro de tu PDF.