2015-08-26 3 views
0

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

Благодарности

+0

напишите ошибку, пожалуйста, –

+0

Пожалуйста, отредактируйте свой вопрос, чтобы включить точные сообщения об ошибках, которые вы получаете. Убедитесь, что строка кода, вызывающая вашу ошибку, включена в ваш вопрос и укажите, в какой строке она находится. – Kenster

+0

Это может быть вызвано неправильным HTML, который несовместим с 'html2pdf'. Я предлагаю вам использовать 'mPDF' вместо этого, поскольку он значительно улучшил эти функции. –

ответ

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!"; 
Смежные вопросы