Мне нужно создать несколько файлов PDF из php-цикла … любые идеи о том, как это сделать? Я пытаюсь использовать html2pdf, но я получаю ошибку тега (файл include работает отлично, когда работает один вывод!):
require_once('html2pdf.class.php'); $results = mysql_query("SELECT * FROM tbl ORDER BY id DESC LIMIT 10"); while ($row = mysql_fetch_assoc($results)) { $id=$row['id']; include('pdf.php'); $content = ob_get_clean(); try { $html2pdf = new HTML2PDF('P', 'A4', 'en', false, 'ISO-8859-1'); $html2pdf->setTestTdInOnePage(false); $html2pdf->writeHTML($content, isset($_GET['vuehtml'])); $Filename = "PDF_".$id.".pdf"; $html2pdf->Output($Filename, 'F'); } catch(HTML2PDF_exception $e) { echo $e; exit; } }
ОШИБКА:
File : /var/www/html/eco/_class/parsingHtml.class.php Line : 117 HTML code invalid, a tag is closed too many times: <table> HTML : ...</table> </td> <...
Если я добавлю ob_start (); перед включением:
TCPDF ERROR: Unable to create output file: PDF_.pdf
благодаря
Еще раз я решил сам … Во всяком случае, я хотел бы опубликовать решение для тех, кто получит ту же проблему:
require_once('html2pdf.class.php'); $results = mysql_query("SELECT * FROM tbl ORDER BY id ASC"); while ($row = mysql_fetch_assoc($results)) { ob_start(); <page> .... HTML .... </page> $content = ob_get_contents(); try { $html2pdf = new HTML2PDF('P', 'A4', 'en', false, 'ISO-8859-1'); $html2pdf->setTestTdInOnePage(false); $html2pdf->writeHTML($content, isset($_GET['vuehtml'])); $Filename = "../folder/".$name.".pdf"; $html2pdf->Output($Filename, 'F'); } catch(HTML2PDF_exception $e) { echo $e; exit; } $content_print .= ob_get_clean(); // add the content for the next document and now delete the output buffer echo "<br> $name ...done!"; echo str_pad('',4096)."\n"; //display some results so the page won't stay blank for too long ob_flush(); flush(); } echo "all done!";