Autor Zpráva
Folker
Profil
Ahoj,
pracuji na jednom webu a mám malý problém s vytvořením PDF dokumentu. Potřebuji upravit obsah pdf na stránce podle počtu vložených produktů a použil jsem proto klasickou podmínku. Vstupní data jsou v poli $obsah:
$pocet = count($obsah); //přečte počet produktů v poli
if ($pocet<=5) {
while ($obsah_nadpis = current($obsah)){
// obsah stránky v případě, že produktů není více než 5 a vejdou se na 1 stránku
}
}else{
while (key($obsah)<=4){
// obsah stránky v případě většího počtu stran (1. strana)
}
while ($obsah_nadpis = current($obsah)){
// obsah druhé stránky
}
}
Takto vše funguje, ale pokud (key($obsah)<=4) změním na (key($obsah)<=5), tak při vložení 6 produktů se zobrazí tato chybová hláška:
FPDF error: Image file has no extension and no type was specified:

Když je produktů více nebo méně tak je vše v pořádku. Nevíte někdo čím to může být? Předem děkuji a vaše rady.
Keeehi
Profil
Folker:
Řekl bych, že to nemá se stránkováním nic společného. Podle mě jde o problém s nějakým obrázkem. Krátkým hledáním na googlu jsem narazil na informaci, že to funguje správně jen s jpeg obrázky. Tuto informaci jsem neověřoval, ale třeba to pomůže.
Folker
Profil
Diky. Obrázky jsou všechny v jpeg. Dělá to i když vložím 6 stejných produktů, které se mi v jiném počtu zobrazí dobře.
Pro jistotu vložím větší část kódu, ale nelekněte se prosím. Nejsem ve tvorbě pdf moc kovaný.
// načtení parametrů výrobku
$obsah = explode(";",$obsah);
$obsah1 = explode(";",$obsah1);
$obrazek = explode(";",$obrazek);

$pocet = count($obsah);
if ($pocet<=5) {

while ($obsah_nadpis = current($obsah)){
$pdf->Cell(180,50,'');
$pdf->SetFont('misen_bold','B',10);
$pdf->MultiCell(330,16,$obsah_nadpis);
$obsah_text = current($obsah1);
$pdf->Cell(180,50,'');
$pdf->SetFont('misen','',10);
$pdf->MultiCell(330,16,$obsah_text);
$pdf->MultiCell(350,20,'');
$klic = key($obsah) + 1;
$pozice = $klic * 83 + 60;
$obrazek1 = current($obrazek);
$pdf->Image($obrazek1,40,$pozice,100);
next($obsah);
next($obsah1);
next($obrazek);
}
}else{

while (key($obsah)<=5){
$obsah_nadpis = current($obsah);
$pdf->Cell(180,50,'');
$pdf->SetFont('misen_bold','B',10);
$pdf->MultiCell(330,16,$obsah_nadpis);
$obsah_text = current($obsah1);
$pdf->Cell(180,50,'');
$pdf->SetFont('misen','',10);
$pdf->MultiCell(330,16,$obsah_text);
$pdf->MultiCell(350,20,'');
$klic = key($obsah) + 1;
$pozice = $klic * 83 + 60;
$obrazek1 = current($obrazek);
$pdf->Image($obrazek1,40,$pozice,100);
next($obsah);
next($obsah1);
next($obrazek);
}
$pdf->AddPage('P','A4');
$pdf->MultiCell(200,22,'');
while ($obsah_nadpis = current($obsah)){

$pdf->Cell(180,50,'');
$pdf->SetFont('misen_bold','B',10);
$pdf->MultiCell(330,16,$obsah_nadpis);
$obsah_text = current($obsah1);
$pdf->Cell(180,50,'');
$pdf->SetFont('misen','',10);
$pdf->MultiCell(330,16,$obsah_text);
$pdf->MultiCell(350,20,'');
$klic = key($obsah) - 4;
$pozice = $klic * 83 + 60;
$obrazek1 = current($obrazek);
$pdf->Image($obrazek1,40,$pozice,100);
next($obsah);
next($obsah1);
next($obrazek);
}
}

Jde mi o to, že pod produkty se mi zobrazuje ještě rámeček pro razítko prodejce. Pokud je produktů více, tak se toto razítko přesune na druhou stranu a já mohu na té 1. straně umístit o 2 produkty více. Předem děkuji za rady omlouvám se za ten šílený kód.
Folker
Profil
Tak už jsem na to přišel. Chyba byla opravdu v tom počtu zobrazených produktů, protože když jsem vkládal 6 produktů a v kódu bylo (key($obsah)<=5), tak se vše nacpalo na 1. stranu a na druhou nic nezbylo. Řádek 48 while ($obsah_nadpis = current($obsah)){ tudíž neměl již žádná vstupní data a vyhodil chybu. Stačilo vytvořit elseif pro počet 6 produktů a je po problému.
Díky za snahu

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: