несколько файлов PDF с html2pdf

Мне нужно создать несколько файлов 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

Спасибо


person diego    schedule 26.08.2015    source источник
comment
напишите ошибку пожалуйста   -  person Danyal Sandeelo    schedule 26.08.2015
comment
Пожалуйста, отредактируйте свой вопрос, чтобы включить точные сообщения об ошибках, которые вы получаете. Убедитесь, что строка кода, которая вызывает вашу ошибку, включена в ваш вопрос, и укажите, какая это строка.   -  person Kenster    schedule 26.08.2015
comment
Это может быть вызвано неправильным HTML, несовместимым с html2pdf. Я предлагаю вам использовать вместо этого mPDF, так как он значительно улучшил эти функции.   -  person Frederick Zhang    schedule 26.08.2015
comment
это означает, что я должен переделать весь файл PDF/php... он очень сложный и работает хорошо, если его взять без цикла..   -  person diego    schedule 26.08.2015


Ответы (1)


Еще раз я решил самостоятельно... В любом случае, я хотел бы опубликовать решение для тех, кто столкнется с той же проблемой:

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!";
person diego    schedule 27.08.2015