RSS

Crear PDF desde PHP: Encabezado (4/7)

30 Jun

Los siguiente para hacer es el encabezado usando el método Header ().

Al inicio cuando tuve que hacer el encabezado como lo expliqué en la primera entrada, pensé en hacer una celda con Cell(), poner los bordes de arriba y abajo activos y meter ahí el texto con las imágenes. Pero esta idea no me funcionó =(

Para solucionar esto, encontré entre las funciones del manual una que se llama Line(), la cual dibuja una línea (así de fácil :D), de este modo, usé dos líneas paralelas y en seguida 3 celdas contiguas con cell():

  • En la primera, coloqué la imagen de la izquierda
  • En la segunda está el texto y una imagen
  • En la tercera, está la imagen de la derecha.

Al igual que Footer() existe una clase que se llama Header() definida en la librería en la cual se puede añadir lo que se requiera y será llamado siempre que se usé addPage().

Veamos en código lo que recién menciono (quité los comentarios pasados para limpiar el código):

En la clase PDF.php agregaremos lo siguiente referente al método Header():

<?php
include_once('fpdf.php');
class PDF extends FPDF
{
    function Footer(){
        $this->SetY(-15);
        $this->SetFont('Arial','I',8);
        $this->Cell(0,10,'Este es el pie de página creado con el método Footer() de la clase creada PDF que hereda de FPDF','T',0,'C');
    }

    function Header(){
		//Define tipo de letra a usar, Arial, Negrita, 15
		$this->SetFont('Arial','B',9);
		/* Líneas paralelas
		 * Line(x1,y1,x2,y2)
		 * El origen es la esquina superior izquierda
		 * Cambien los parámetros y chequen las posiciones
		 * */
		$this->Line(10,10,206,10);
		$this->Line(10,35.5,206,35.5);
		/* Explicaré el primer Cell() (Los siguientes son similares)
		 * 30 : de ancho
		 * 25 : de alto
		 * ' ' : sin texto
		 * 0 : sin borde
		 * 0 : Lo siguiente en el código va a la derecha (en este caso la segunda celda)
		 * 'C' : Texto Centrado
		 * $this->Image('images/logo.png', 152,12, 19) Método para insertar imagen
		 *     'images/logo.png' : ruta de la imagen
		 *         152 : posición X (recordar que el origen es la esquina superior izquierda)
		 *         12 : posición Y
		 *     19 : Ancho de la imagen <span class="wp-smiley emoji emoji-wordpress" title="(w)">(w)</span>
		 *     Nota: Al no especificar el alto de la imagen (h), éste se calcula automáticamente
		 * */
		$this->Cell(30,25,'',0,0,'C',$this->Image('images/logo.png', 152,12, 19));
		$this->Cell(111,25,'ALGÚN TÍTULO DE ALGÚN LUGAR',0,0,'C', $this->Image('images/logoIzquierda.png',20,12,20));
		$this->Cell(40,25,'',0,0,'C',$this->Image('images/logoDerecha.png', 175, 12, 19));
		//Se da un salto de línea de 25
		$this->Ln(25);
	}
}

Ya que Header y Footer se llaman automáticamente, el archivo crePDF.php no tiene ningún cambio, veamos:

<?php
include_once('PDF.php');

	$pdf = new PDF();
	$pdf->AddPage('P', 'Letter'); //Vertical, Carta
	$pdf->SetFont('Arial','B',12); //Arial, negrita, 12 puntos
	$pdf->Ln();

	$pdf->Output(); //Salida al navegador del pdf
?>

Al hacer la secuencia desde el index y clickar en Generar PDF, esta es la salida:

encabezado

¿Vamos bien? Sino, cualquier duda o crítica constructiva háganla llegar a:

ringhugos@gmail.com || @huguidugui

 
7 comentarios

Publicado por en 30 junio, 2014 en FPDF, PHP

 

Etiquetas: ,

7 Respuestas a “Crear PDF desde PHP: Encabezado (4/7)

  1. LUIS LOPEZ ACOSTA

    2 septiembre, 2014 at 19:11

    Gracias es excelente el tutorial. Gracias por el apoyo a los demàs

     
  2. diego

    25 noviembre, 2014 at 13:55

    me sale el siguiente error estimado

    ( ! ) SCREAM: Error suppression ignored for
    ( ! ) Warning: fopen(img/logoIzquierda.png): failed to open stream: No such file or directory in C:\wamp\www\Reporteria\php\fpdf.php on line 1232
    Call Stack
    # Time Memory Function Location
    1 0.0002 141328 {main}( ) ..\creaPDF.php:0
    2 0.0042 502016 FPDF->AddPage( ) ..\creaPDF.php:8
    3 0.0042 503560 PDF->Header( ) ..\fpdf.php:348
    4 0.0050 527304 FPDF->Image( ) ..\PDF.php:50
    5 0.0050 527776 FPDF->_parsepng( ) ..\fpdf.php:901
    6 0.0050 527888 fopen ( ) ..\fpdf.php:1232
    FPDF error: Can’t open image file: img/logoIzquierda.png

    her revisado el directorio y la imagen esta, si puedes ayudar seria de gran importancia

    saludos-

     
    • huguidugui

      25 noviembre, 2014 at 19:31

      Es un problemas de rutas ;(
      Envíame en zip tu ejemplo y te ayudo a encontrar la ruta 😉 ringhugos@gmail.com

      Saludos y gracias por leer el tuto 😀

       
  3. Alberth

    28 noviembre, 2014 at 16:15

    Buen tutorial amigo, como haces para que te aparesca los acentos use utf8_decode() pero fpdf no tiene algo interno ? gracias

     
    • huguidugui

      29 noviembre, 2014 at 05:51

      Hola albert, la verdad es que no entendí bien tu duda pero para que aparezcan los acentos se usa la función que mencionas (función de PHP) y te coloca los acentos dentro del PDF generado.

      Saludos y muchas gracias por seguir el blog 😀

       
  4. cindy

    23 noviembre, 2015 at 10:35

    Hola, 😀 oye mi pregunta tambien esta relacionada con las tildes, tengo el utf8_decode() pero no me salen, Gracias por tus explicaciones, he entendido. 😀

     
    • huguidugui

      6 diciembre, 2015 at 18:28

      Hola cindy, pues debería funcionar. Pero si quieres enviarme tu código a ringhugos@gmail.com y una captura de pantalla, te podré ayudar.

      Saludos y gracias por seguir el blog

       

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: