martes, 1 de diciembre de 2015

Enlaces en FPDF

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

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

<?
 require('../librerias/fpdf/fpdf.php');

 class PDF extends FPDF
 {
   function Header()
   {
     //Logo
     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:

<?
 require('../librerias/fpdf/fpdf.php');


 class PDF extends FPDF
 {
   //Cabecera de página
   function Header()
   {
     //Logo
     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.




Este manual esta sacado textualmente DesarrolloWeb.com de puede acceder a el en el siguiente link . Lo copio acá exclusivamente porque me resulto muy útil y quiero poder encontrarlo de forma rápida cada vez que lo necesite.

No hay comentarios:

Publicar un comentario