> Manuales > Crear PDF en PHP con FPDF

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.

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.

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


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.

Sara Alvarez

Equipo DesarrolloWeb.com

Manual