PHP - PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

 
Vista:

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por PIERRE (6 intervenciones) el 18/08/2022 01:18:59
Hola muchachos, espero me puedan ayudar.
Deseo colocar en una tabla imagenes, estoy haciendo un catalogo de productos y deseo que salgan sus descripciones y sus imagenes pero cuando lo hago como una variable más la url no me aparece nada. Espero me puedan ayudar.
Gracias

COMPARTO MI CODIGO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class PDF extends FPDF
{
// Cabecera de página
function Header()
{
    // Logo
    $this->Image('../Catalogo_Imagenes/LogoCatalogo.png',10,8,50);
    // Arial bold 15
    $this->SetFont('Arial','B',10);
    // Movernos a la derecha
    $this->Cell(110);
    // Título
    $this->Cell(30,10,'CATALOGO DE PRODUCTOS',0,0,'C');
    // Salto de línea
    $this->Ln(20);
    $this->Cell(20, 10, 'CODIGO', 1, 0, 'C', 0);
    $this->Cell(30, 10, 'DESCRIPCION', 1, 0, 'C', 0);
    $this->Cell(32, 10, 'BUJIA', 1, 0, 'C', 0);
    $this->Cell(32, 10, 'BOBINA', 1, 0, 'C', 0);
    $this->Cell(32, 10, 'DISTRIBUIDOR', 1, 0, 'C', 0);
    $this->Cell(32, 10, 'BOBINA', 1, 1, 'C', 0);
}
 
// 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,utf8_decode('Página ').$this->PageNo().'/{nb}',0,0,'C');
}
}
 
require_once '../class/Productos.class.php';
$obj = new Productos();
$lista = $obj->ListarCatalogoProductos();
 
$pdf = new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','',9);
// $pdf->Cell(40,10,utf8_decode($html));
 
foreach ($lista as $campo) {
    $url = '../Catalogo_Imagenes/';
    $Codigo_Productos = $campo["Codigo"];
    $Marca = $campo["Marca"];
    $Modelo = $campo["Modelo"];
    $Cilindrada = $campo["Cilindrada"];
    $Motor = $campo["Motor"];
    $Anos = $campo["Anos"];
    $Observaciones = $campo["Observaciones"];
    $LadoBujia_img = $url.$campo['LadoBujia_img'].".png";
    $LadoBobina_img = $campo["LadoBobina_img"];
    $LadoDistribuidor_img = $campo["LadoDistribuidor_img"];
    $LadoBobinaDistribuidor_img = $campo["LadoBobinaDistribuidor_img"];
 
    $pdf->Cell(20, 33, $Codigo_Productos, 1, 0, 'C', 0);
    $pdf->Cell(30, 33, $Marca, 1, 0, 'J', 0);
    $pdf->Cell(32, 33, $pdf->Image($LadoBujia_img,$pdf->GetX(),$pdf->GetY()-1,32),1 , 0, 'C',false,);
 
    }
 
$pdf->Output();


Mi problema en resumen es:
Variables:
$url = '../Catalogo_Imagenes/';
$LadoBujia_img = $url.$campo['LadoBujia_img'].".png";

Declaro:
$pdf->Cell(32, 33, $pdf->Image($LadoBujia_img,$pdf->GetX(),$pdf->GetY()-1,32),1 , 0, 'C',false,);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Ivan

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por Ivan (118 intervenciones) el 18/08/2022 18:52:35
Hola,

yo también uso esa librería y las rutas a las imágenes deben ser absolutas, no relativas. Es decir, por una parte no uses rutas url sinó rutas path del disco duro de tu servidor.

Por otra parte la ruta absoluta en tu dominio.com será:

1
$_SERVER['DOCUMENT_ROOT'] . '/directorios_hasta_tu_imagen/' . 'tu_imagen.jpg'

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por PIERRE (6 intervenciones) el 18/08/2022 20:05:11
Gracias por responder, soy un poco novato para esto y agradezco mucho tu ayuda.

Si no fuera mucha molestia me podrias dar un ejemplo?, como te comento soy un poco novato para esto, ademas me podrias informar si con esto no hubiera problemas ya que aproximadamente son como 10,000 registros aprox que tendria que recorrer ya que las imagenes las tengo en una carpeta y en la BD solo tengo los nombres de las imagenes guardadas como texto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por Ivan (118 intervenciones) el 18/08/2022 21:57:49
Hola,

no deberías tener ningún problema:

La raiz de tu dominio.com o el inicio del path en tu dominio, es donde tienes tu página web principal o de inicio

Eso es el $_SERVER['DOCUMENT_ROOT']

si tus imagenes estan en la carpeta /Catalogo_Imagenes/

Como dije antes

1
$_SERVER['DOCUMENT_ROOT'] . '/Catalogo_Imagenes/' . 'tu_imagen.jpg'

Es la ruta que debes indicar, y si haces un bucle con sólo cambiar el nombre de la imagen tienes las 10.000 imagenes
Primero prueba que la ruta sea correcta hasta una imagen.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por PIERRE (6 intervenciones) el 19/08/2022 16:23:47
Te quedo muy agradecido por el apoyo... Voy a probarlo y te comento como me fue.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por PIERRE (6 intervenciones) el 19/08/2022 17:30:14
Hola nuevamente, hice lo que me indicaste pero sigue sin cargarme nada =/.
Incluso le coloque mi ruta directa que es: http://localhost:8888/Sistema/CatalogoImagenes/ dentro del foreach pero no me sale....


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
foreach ($lista as $campo) {
    $Codigo_Productos = $campo["Codigo"];
    $Marca = $campo["Marca"];
    $Modelo = $campo["Modelo"];
    $Cilindrada = $campo["Cilindrada"];
    $Motor = $campo["Motor"];
    $Anos = $campo["Anos"];
    $Observaciones = $campo["Observaciones"];
    $LadoBujia_img = $campo["LadoBujia_img"]."png";
    $LadoBobina_img = $campo["LadoBobina_img"];
    $LadoDistribuidor_img = $campo["LadoDistribuidor_img"];
    $LadoBobinaDistribuidor_img = $campo["LadoBobinaDistribuidor_img"];
 
    $pdf->Cell(20, 33, $Codigo_Productos, 1, 0, 'C', 0);
    $pdf->Cell(30, 33, $Marca, 1, 0, 'J', 0);
    // $pdf->Cell(32, 33, $ladoBujia_img, 1, 0, 'J', 0);
    // $pdf->Cell(32, 33, '', 1, 0, 'J', 0);
    // $pdf->Cell(32, 33, $LadoDistribuidor_img, 1, 0, 'J', 0);
    // $pdf->Cell(32, 33, $LadoBobinaDistribuidor_img, 1, 1, 'J', 0);
    $pdf->Cell(32, 33, $pdf->Image($_SERVER['DOCUMENT_ROOT'] .'/Catalogo_Imagenes/'.$ladoBujia_img,$pdf->GetX(),$pdf->GetY()-1,32),1);

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por Ivan (118 intervenciones) el 19/08/2022 17:49:17
Hola,

quizás no me expliqué bien al principio, pero en un entorno web siempre hay dos tipus de rutas:

ruta URL: http://localhost/Sistema/CatalogoImagenes/
Esto es una ruta de internet hasta un recurso de tu web

ruta PATH: Que debe ser algo como c:/wamp64/www/mi_web/Sistema/CatalogoImagenes/
Esto es una ruta física hasta un recurso de tu disco duro

La librería FPDF requiere la ruta PATH, la del disco duro, no la "virtual" de un entorno web.

No conozco tu entorno web ni tu disco duro, así que observa qué ruta te devuelve $_SERVER['DOCUMENT_ROOT'] y a partir de ahí, sigue hasta la ubicación de tu imagen en el disco duro.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por PIERRE (6 intervenciones) el 20/08/2022 02:15:40
Gracias por la paciencia enserio. Te comento que estoy utilizando un macos monterey y bueno creo que en windows hubiera sido mas facil de encontrar el path pero bueno de la complejidad esta el aprendizaje.
Bueno cuando hago un
$_SERVER['DOCUMENT_ROOT'] me sale /Applications/MAMP/htdocs
Ahora cuando hago
dirname(__FILE__,2); me sale /Applications/MAMP/htdocs/SistemaWeb

Ahora buscando en internet como sacar mi ruta path supuestamentamente lo enviado seria lo correcto pero cuando lo ejecuto en mi archivo todavia no me sale las imagenes.

1
2
$url = dirname(__FILE__,2)."/Catalogo_Imagenes/";
$pdf->Cell(32, 33, $pdf->Image($url.$ladoBujia_img,$pdf->GetX(),$pdf->GetY()-1,32),1);

Gracias de antemano.. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ivan

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por Ivan (118 intervenciones) el 20/08/2022 11:47:42
Hola,

bueno, vamos a hacer un último esfuerzo en explicarlo y luego lo dejo ya ...

Para empezar dirname o FILE no sirve. Devuelven valores similares,pero insisto una vez más, buscamos la raiz de tu sitio, los conceptos claros.

Si tenemos claro que una dirección URL es del tipo http://mi_dominio.com/mi_directorio/mi_imagen.jpg

y una dirección física del disco duro o PATH es C:/un_directorio/otro_directorio/mi_imagen.jpg

Lo que buscamos es la raiz de la dirección PATH, el origen a partir del cual poder llegar hasta la imagen en el árbol de directorios del disco duro.

Esto es lo que devuelve en mi ordenador (localhost) $_SERVER['DOCUMENT_ROOT'] -> F:/wamp64/www

Este es el directorio raíz de mi servidor local, a partir de esta carpeta tengo todas mis webs, cada una en una carpeta, por ejemplo en mi_web_de_coches, donde está mi index.php o página web inicial será F:/wamp64/www/mi_web_de_coches/, y dentro de mi web tengo las imagenes en la carpeta imagenes, por lo que una imagen cualquiera estará en F:/wamp64/www/mi_web_de_coches/imagenes/una_imagen.jpg

Que pasa en el servidor de Internet?

Que por motivos de seguridad no te muestra la raíz completa del disco duro, sólo te muestra la raíz a partir de tu web, para que no te puedas meter en otras wes claro.

Esto es lo que me muestra en Internet mi servidor en una de mis webs $_SERVER['DOCUMENT_ROOT'] -> /home/cocina-online.com/web

Esta es la raiz de mi sitio en Internet, y a partir de aquí tengo mis imagenes en mi carpeta imagenes, de modo que una imagen cualquiera en mi servidor de Internet estará en /home/cocina-online.com/web/imagenes/una_imagen.jpg

Ya no se explicarlo mejor, espero que te sirva.

Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PHP - FPDF: COLOCAR IMAGEN CON VARIABLE EN UNA TABLA

Publicado por PIERRE (6 intervenciones) el 20/08/2022 20:17:55
Te agradezco por la ayuda estimado, llegue a encontrar el path e incluso saque del bucle el path... Pero ahora solo me aparecen 13 paginas, debiendo ser aproximadamente como 273 paginas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar