Autor | Zpráva | ||
---|---|---|---|
Folker Profil |
#1 · Zasláno: 6. 3. 2012, 15:15:00
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 } } (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 |
#2 · Zasláno: 6. 3. 2012, 15:27:01
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 |
#3 · Zasláno: 6. 3. 2012, 15:33:43
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 |
#4 · Zasláno: 6. 3. 2012, 16:38:41
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 |
||
Časová prodleva: 11 let
|
0