Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Lie09 en 25 de Julio 2015, 01:14

Título: PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Lie09 en 25 de Julio 2015, 01:14
Hola!! tengo una duda acerca de cómo mostrar una imagen en un PDF que está almacenada en la base de datos. Utilizo la librería FPDF y no sé cómo mostrar la imagen, sólo me muestra la ruta en el PDF. De antemano muchas gracias ::)
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Ogramar en 25 de Julio 2015, 16:51
Hola! Pega el código que estés usando para verlo como se explica en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Para insertar una imagen debes invocar la función imagen pasándole el nombre de la imagen, las dimensiones y si quieres que sea un link, la dirección web para el link:

$pdf->Image('logo.png',10,20,33,0,' ','https://www.aprenderaprogramar.com/');

Un ejemplo de código más amplio:

Código: [Seleccionar]
<?php
require('fpdf.php');

//create a FPDF object
$pdf=new FPDF();

//set document properties
$pdf->SetAuthor('Juan Luis Guerra');
$pdf->SetTitle('FPDF tutorial');

//set font for the entire document
$pdf->SetFont('Helvetica','B',20);
$pdf->SetTextColor(50,60,100);

//set up a page
$pdf->AddPage('P');
$pdf->SetDisplayMode(real,'default');

//insert an image and make it a link
$pdf->Image('logo.png',10,20,33,0,' ','http://www.fpdf.org/');

//display the title with a border around it
$pdf->SetXY(50,20);
$pdf->SetDrawColor(50,60,100);
$pdf->Cell(100,10,'FPDF Tutorial',1,0,'C',0);

//Set x and y position for the main text, reduce font size and write content
$pdf->SetXY (10,50);
$pdf->SetFontSize(10);
$pdf->Write(5,'Congratulations! You have generated a PDF.');

//Output the document
$pdf->Output('example1.pdf','I');
?>



Este es otro ejemplo donde se genera una cabecera y un pie de página para el documento pdf:

Código: [Seleccionar]
<?php
require('fpdf.php');

class 
PDF extends FPDF
{
  function 
Header()
    {
      
$this->Image('logo.png',10,8,33);
      
$this->SetFont('Helvetica','B',15);
      
$this->SetXY(5010);
      
$this->Cell(0,10,'This is a header',1,0,'C');
     }

  function 
Footer()
    {
      
$this->SetXY(100,-15);
      
$this->SetFont('Helvetica','I',10);
      
$this->Write (5'This is a footer');
    }
}

$pdf=new PDF();
$pdf->AddPage();
$pdf->Output('example2.pdf','D');
?>


Salu2
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Lie09 en 25 de Julio 2015, 23:40
Gracias!! utilizo un while, quiero mostrar la imagen en una celda, ya que muestro una tabla con los siguientes datos de la base de datos y quiero mostrar la imagen, pero me aparece la ruta nada más.

Código: [Seleccionar]
$result = mysqli_query($link, "SELECT * FROM cursos");
while($resultados= mysqli_fetch_array($result))
$pdf->Cell(20,5,$resultados['dias'],1,0);
$pdf->Cell(15,5,$resultados['inicio'],1,0);
$pdf->Cell(15,5,$resultados['termino'],1,0);
$pdf->Cell(15,5,$resultados['horas'].' hrs.',1,0);
        $pdf->Cell(15,5,$resultados['imagen'],1,0);
$pdf->Ln();
}
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Ogramar en 25 de Julio 2015, 23:48
¿Qué ruta de imagen es la que te aparece?

Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Lie09 en 25 de Julio 2015, 23:59
Me aparece lo siguiente, que es lo que tiene el campo 'imagen' de la bd, pero no se muestra la imagen

../V/Fotos/Cursos/images (2).jpg

Dentro de Vista, tengo esas dos carpetas y las imágenes
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Ogramar en 26 de Julio 2015, 00:14
La ruta de la imagen parece que puede ser errónea. Es extraño que en base de datos se almacene una ruta relativa, lo más normal sería almacenar una ruta absoluta (o en todo caso relativa a la raíz sin usar ..)

../V/Fotos/Cursos/images (2).jpg

Contiene un espacio, las rutas no pueden contener espacios, esto da la impresión de que es un problema.

Además es una ruta relativa, que apunta al directorio inmediatamente superior al directorio donde se encuentre el archivo que la invoca y luego a la subcarpeta V. ¿Pero es esa ruta correcta donde la estás utilizando?

¿Con qué ruta absoluta puedes acceder al archivo de la imagen?
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Lie09 en 26 de Julio 2015, 00:29
Lo manejo de forma local en C:\wamp\www\Web\V\Fotos\Cursos y es ahí en Cursos donde se guardan las imágenes que quiero mostrar en el PDF
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Ogramar en 26 de Julio 2015, 15:16
Hola yo probaría varias cosas. Una de ellas cambiar la ruta de la imagen y en lugar de /V/Fotos/Cursos/images (2).jpg con espacios cambiarla por /V/Fotos/Cursos/images2.jpg

Esto tendrías que cambiarlo en la base de datos también.

Luego para determinar cuál es la ruta correcta que se debe usar introducir manualmente la ruta en el código, por ejemplo:

Código: [Seleccionar]
$result = mysqli_query($link, "SELECT * FROM cursos");
while($resultados= mysqli_fetch_array($result))
$pdf->Cell(20,5,$resultados['dias'],1,0);
$pdf->Cell(15,5,$resultados['inicio'],1,0);
$pdf->Cell(15,5,$resultados['termino'],1,0);
$pdf->Cell(15,5,$resultados['horas'].' hrs.',1,0);
        $pdf->Cell(15,5,"Web/V/Fotos/Cursos/images2.jpg",1,0);
$pdf->Ln();
}

Si esa ruta no te funciona tendrás que probar otras, por ejemplo "www/Web/V/Fotos/Cursos/images2.jpg"

Ten en cuenta que las rutas en servidores usan normalmente la barra / en lugar de la barra \

Una vez consigas que te funcione con la ruta introducida manualmente ya tendrías que compararlo con lo que tienes en base de datos para conseguir tener en la base de datos la ruta correcta y dejarlo funcionando de modo que extraiga la ruta desde la base de datos.

Salu2
Título: Re:PHP crear archivo pdf con librería FPDF e insertar imagen desde base de datos
Publicado por: Lie09 en 26 de Julio 2015, 20:21
Ok muchas gracias, probaré esto saludos  :D