Мне нужно создать несколько PDF-файлов из цикла php … Есть идеи, как это сделать?
Я пытаюсь использовать html2pdf, но получаю ошибку тега (включаемый файл работает нормально, потому что работает единственный вывод!):
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!";
Других решений пока нет …