Többlapos Pdf Renderelési Hiba

Üdv,

riportot készítek TCPDF -be, de a foreach cikluson belül a renderpartial csak az első lapot rendereli. A második lapnál hibajelzés nélkül elszáll.

Ha statikus HTML kódot rakok a $html -be az tökéletesen lefut. Mi lehet a probléma?




			foreach ($dalyids as $dalyid)

			{

				$model= $this->loadModel($dalyid);

				$html = $this->renderPartial('_report', array('data'=>$model), true);

				$pdf->AddPage();

				$pdf->writeHTML($html, true, true, false, true, '');

			}

			$pdf->Output('daily.pdf', 'I');



Valószínűleg a TCPDF fogja a hibát okozni.

Az [size="2"]$pdf[/size][color="#666600"][size="2"]->[/size][/color][color="#660066"][size="2"]AddPage[/size][/color][color="#666600"]size="2"; nem feltétlen szükséges, mert tudsz a tartalomba is oldaltörést rakni.[/size][/color]

[color="#666600"][size="2"]A lastpage metódust nem használtad. Szerintem exportáld ki változókba a kiemenetekt és natív módon próbálkozd a hibát a TCPDF kiegészítővel megoldani, mert ez biztos, hogy nem kötődik a Yii rendszer renderelő részéhez.[/size][/color]

Kipróbáltam a lastpage metódust, nincs változás.

Nem hiszem, hogy a TCPDF -el lenne baj, hiszen ha a renderPartial helyett statikus html kódot használok, akkor hiba nélkül több lapot is elkészít.

Beraktam egy jól működő views lapba a következő két sort:




 <?php echo CController::renderPartial('_report_test', array(), true); ?>

 <?php echo CController::renderPartial('_report_test', array(), true); ?>



Ha csak egy sor volt berakva, a laphoz hozzáfűzte a _report_test tartalmát.

Ha mindkettő bent volt, a másodikál elszált a yii (nem volt keret, menü, a html kód szerint a második renderPartial -nál állt meg). Hibajelzés megint nincs.

A legfrissebb yii -t használom.

Ha nincs hiba, lehetséges, hogy a yii elnyomja. Ezt tedd bele a főkönyvtárban lévő index.php elejére.





defined('YII_DEBUG') or define('YII_DEBUG',true);

// specify how many levels of call stack should be shown in each log message

defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);


ini_set('display_errors', 1);

ini_set('error_prepend_string', '<div style="color: #880000; background-color: #FFDDDD; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; padding: 3px; border: 1px dashed #aa4444"><pre>');

ini_set('error_append_string', '</pre></div>');



A másik dolog:




<?php echo CController::renderPartial('_report_test', array(), true); ?>



Ezt miért raktad be a view-ba, ez teljesen értelmetlennek tűnik.

A view-ba tedd bele a pdf-hez szükséges kódokat. A kontrollerbe a view renderelését. Csináld meg elsőre úgy, hogy ne használd a pdf kiterjesztést, ha a képernyőre megy a renderelés, akkor minden jó. Én natív CSS-el renderelek, nem használok oldaltörés metódust.

Továbbá javaslom a http://www.mpdf1.com/mpdf/examples kiterjesztést, ha persze ez az eszköz megfelel a részedre.