[ Foro de PHP ]

generar documento pdf con php

09-Apr-2025 01:44
Richard Gomez
0 Respuestas

se me ocurrio hacer unos cartones de bingo con php logre generar todo pero a la hora de armar los cartones me da errores..........he revisado y no logro encontrarlo, lo que hace es crear el carton y no usa numeros si no figuras se usa un arreglo donde estan guardado los valores o numeros que represantan la figura...osea cada figura tiene un numero el arreglo que representa las figuras se llama $fichas, y los valores que indica que figuras pegar se llama $cartones, se generan 250 cartones con un ciclo FOR pero al ejecurar dar unos errores........y no logro encontrarlo, si elimino el ciclo for se genera un solo carton sin problemas, aqui les dijo el codigo

<?php
// Agregamos la libreria FPDF
require('fpdf/fpdf.php');

// Creamos un objeto de la librería

$pdf = new FPDF('P','mm',array(125,145));

// Establecemos los márgenes izquierda, arriba y derecha:
$pdf->SetMargins(5,5,);

// Establecemos el margen inferior:
$pdf->SetAutoPageBreak(true,5);  

// Agregamos una Pagina
$pdf->AddPage();

// Cuadro general de los cartones

$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','B',9);

$f = [
'1f.png','2f.png','3f.png','4f.png','5f.png','6f.png','7f.png','8f.png','9f.png','10f.png',
'11f.png','12f.png','13f.png','14f.png','15f.png','16f.png','17f.png','18f.png','19f.png','20f.png',
'21f.png','22f.png','23f.png','24f.png','25f.png','26f.png','27f.png','28f.png','29f.png','30f.png',
'31f.png','32f.png','33f.png','34f.png','35f.png','36f.png','37f.png','38f.png','39f.png','40f.png',
'41f.png','42f.png','43f.png','44f.png','45f.png','46f.png','47f.png','48f.png','49f.png','50f.png',
'51f.png','52f.png','53f.png','54f.png','55f.png','56f.png','57f.png','58f.png','59f.png','60f.png',
'61f.png','62f.png','63f.png','64f.png','65f.png','66f.png','67f.png','68f.png','69f.png','70f.png',
'71f.png','72f.png','73f.png','74f.png','75f.png','76f.png','77f.png','78f.png','79f.png','80f.png',
'81f.png','82f.png','83f.png','84f.png','85f.png','86f.png','87f.png','88f.png','89f.png','90f.png',
'91f.png','92f.png'
];

// Leer el contenido del archivo de los cartones
$Archivo_Arreglo = 'cartones_bingo.txt';
$contenido = file_get_contents($Archivo_Arreglo);

// Deserializar el contenido
$cartones = unserialize($contenido);

$pcx = 10 ;
$pcy = 30 ;
$c = 0 ;

// Añadir 250 páginas

for ($i = 1; $i <= 250; $i++) {
$pdf->AddPage();

// Fondo exterior

$pdf->Image('Logos/Fondo5.png',$pcx-4,$pcy-25,113,134);

// Cabecera
//Logo Izquierdo
$pdf->Image('Logos/Logo_i.png',$pcx-2,$pcy-32,32,37);

//Logo del Centro
$pdf->Image('Logos/Loteria_t.png',$pcx+32,$pcy-33,52,47);

//Logo Derecho
$pdf->Image('Logos/Logo_dt.png',$pcx+85,$pcy-28,26,26);

// Recuadros
//Fondo interno del recuadro
$pdf->Image('Logos/Blanco.png',$pcx,$pcy,105,105);

// Recuadro exterior
$pdf->SetXY($pcx-4,$pcy-25);
$pdf->Cell(113, 134,' ',1,0,'C');

//Celdas
for ($cy = 0; $cy < 100 ; $cy = $cy + 21) {
for ($cx = 0; $cx <100 ; $cx = $cx + 21) {
$pdf->SetXY($pcx + $cx,$pcy + $cy);
$pdf->Cell(21,21,' ',1,0,'C');
}
}

// Relleno de casillas

$pdf->SetTextColor(0,0,0);
$pdf->SetFont('Arial','B',9);

$f1 =  $cartones[$c][0][0];
$f2 =  $cartones[$c][1][0];
$f3 =  $cartones[$c][2][0];
$f4 =  $cartones[$c][3][0];
$f5 =  $cartones[$c][4][0];
$f6 =  $cartones[$c][0][1];
$f7 =  $cartones[$c][1][1];
$f8 =  $cartones[$c][2][1];
$f9 =  $cartones[$c][3][1];
$f10 = $cartones[$c][4][1];
$f11 = $cartones[$c][0][2];
$f12 = $cartones[$c][1][2];
$f13 = $cartones[$c][2][2];
$f14 = $cartones[$c][3][2];
$f15 = $cartones[$c][4][2];
$f16 = $cartones[$c][0][3];
$f17 = $cartones[$c][1][3];
$f18 = $cartones[$c][2][3];
$f19 = $cartones[$c][3][3];
$f20 = $cartones[$c][4][3];
$f21 = $cartones[$c][0][4];
$f22 = $cartones[$c][1][4];
$f23 = $cartones[$c][2][4];
$f24 = $cartones[$c][3][4];
$f25 = $cartones[$c][4][4];

//L1

$pdf->Image("Carton/".$f[$f1],$pcx+1,$pcy,19,19);
$pdf->Image("Carton/".$f[$f2],$pcx+22,$pcy,19,19);
$pdf->Image("Carton/".$f[$f3],$pcx+43,$pcy,19,19);
$pdf->Image("Carton/".$f[$f4],$pcx+64,$pcy,19,19);
$pdf->Image("Carton/".$f[$f5],$pcx+85,$pcy,19,19);


//L2
$pdf->Image("Carton/".$f[$f6],$pcx+1,$pcy+22,19,19);
$pdf->Image("Carton/".$f[$f7],$pcx+22,$pcy+22,19,16);
$pdf->Image("Carton/".$f[$f8],$pcx+43,$pcy+22,19,19);
$pdf->Image("Carton/".$f[$f9],$pcx+64,$pcy+22,19,19);
$pdf->Image("Carton/".$f[$f10],$pcx+85,$pcy+22,19,19);
//L3
$pdf->Image("Carton/".$f[$f11],$pcx+1,$pcy+43,19,19);
$pdf->Image("Carton/".$f[$f12],$pcx+22,$pcy+43,19,19);
//$pdf->Image("Carton/".$f[$f13],$pcx+43,$pcy+43,19,19);
$pdf->Image("Carton/".$f[$f14],$pcx+64,$pcy+43,19,19);
$pdf->Image("Carton/".$f[$f15],$pcx+85,$pcy+43,19,19);

//L4
$pdf->Image("Carton/".$f[$f16],$pcx+1,$pcy+64,19,19);
$pdf->Image("Carton/".$f[$f17],$pcx+22,$pcy+64,19,19);
$pdf->Image("Carton/".$f[$f18],$pcx+43,$pcy+64,19,19);
$pdf->Image("Carton/".$f[$f19],$pcx+64,$pcy+64,19,19);
$pdf->Image("Carton/".$f[$f20],$pcx+85,$pcy+64,19,19);

//L5
$pdf->Image("Carton/".$f[$f21],$pcx+1,$pcy+85,19,19);
$pdf->Image("Carton/".$f[$f22],$pcx+22,$pcy+85,19,19);
$pdf->Image("Carton/".$f[$f23],$pcx+43,$pcy+85,19,19);
$pdf->Image("Carton/".$f[$f24],$pcx+64,$pcy+85,19,19);
$pdf->Image("Carton/".$f[$f25],$pcx+85,$pcy+85,19,19);

$c = $c + 1;

//$pdf->AddPage()
}
$pdf->Output();
 ?>

los errores son lo siguientes

Notice: Undefined offset: 92 in C:\xampp\htdocs\Bingo_Virtual\Carton_x.php on line 131

Fatal error: Uncaught Exception: FPDF error: Image file has no extension and no type was specified: Carton/ in C:\xampp\htdocs\Bingo_Virtual\fpdf\fpdf.php:271 Stack trace: #0 C:\xampp\htdocs\Bingo_Virtual\fpdf\fpdf.php(876): FPDF->Error('Image file has ...') #1 C:\xampp\htdocs\Bingo_Virtual\Carton_x.php(131): FPDF->Image('Carton/', 32, 73, 19, 19) #2 {main} thrown in C:\xampp\htdocs\Bingo_Virtual\fpdf\fpdf.php on line 271

gracias de antemano a todo el que me ayude




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...