> Manuales > Crear PDF en PHP con FPDF

Vemos las distintas formas de realizar enlaces en FPDF.

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:


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.

<?
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:


Podríamos poner un enlace dentro de una imagen de la siguiente forma:

<?
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();
?>

Puedes ver el ejemplo funcionando en una página aparte.

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.

Sara Alvarez

Equipo DesarrolloWeb.com

Manual