2016-06-02 10 views
0

Ich möchte meine PDF-Inhalt in dieser Schleife, derzeit verwende ich DOMPDF zum Erstellen von PDF. Während ich den PDF-Inhalt loopte, habe ich keinen PDF-Inhalt. Wenn ich die Schleife entferne, bekomme ich die PDF. Eigentlich möchte ich ein PDF, das 5 Seiten enthält.Schleife beim Erstellen mehrerer PDF in DOMPDF

Kann mir jemand helfen? Danke im Voraus.

<?php 
include('config/config.php'); 
require_once('dompdf_config.inc.php'); 
error_reporting(0); 
for ($i = 0; $i <= 5; $i++) { 
    //here is my content to loop 
    $pdf_content = '<body> 
       <table width="450" border="0" cellpadding="5" class="table_data"> 
        <tr> 
        <td class="left_col">3. Chassis No</td> 
        <td><b>: ' . $chass_no . ' </b></td> 
        </tr> 
        <tr> 
        <td class="left_col">4. Engine No. </td> 
        <td> <b> : ' . $engine_id . '  </b></td> 
        </tr> 
       </table> 
       </body> 
       '; 
    //create pdf function 
    function createPDF($pdf_userid, $pdf_content, $pdf_For, $filename) 
    { 
     $path = 'UsersActivityReports/'; 
     $dompdf = new DOMPDF(); 
     $dompdf->load_html($pdf_content); 
     $dompdf->render(); 
     $output = $dompdf->output(); 
     file_put_contents($path . $filename, $output); 
     file_get_contents('output1.php'); 

     return $filename; 
    } 

    $name  = date("d-m-y") . rand() . '.pdf'; 
    $reportPDF = createPDF(12, $pdf_content, 'activity_Report', $name); 
} 
//loop ends here 
?> 
<iframe class="prv_pdf" src="/UsersActivityReports/<?php echo $name ?>#zoom=50" height="300px" width="440px"> 
+0

gefunden etwas dhh – seshadry

Antwort

0

Zuerst siehe this question. Das Deklarieren einer Funktion innerhalb einer Schleife führt beim zweiten Auftreten des Codes zu einem Fehler. Also, um das außerhalb der Schleife zu bewegen.

Zweitens generieren Sie eine neue PDF-Datei für jede Schleife und speichern diese PDF-Datei jedes Mal in der Datei. So erhalten Sie immer nur eine einseitige PDF. Wahrscheinlich möchten Sie den HTML-Inhalt in jeder Schleife generieren und dann die PDF-Datei erstellen, wenn Sie fertig sind.

so etwas wie dieses Versuchen (vereinfacht auf das, was in den Fragen tatsächlich ist):

require_once('dompdf_config.inc.php'); 

function createPDF($pdf_content, $filename) { 
    $dompdf = new DOMPDF(); 
    $dompdf->load_html($pdf_content); 
    $dompdf->render(); 
    $output = $dompdf->output(); 
    file_put_contents($filename, $output); 
} 

$pdf_content = ' 
    <html> 
    <head> 
     <style> 
     .table_data { page-break-before: always; } 
     .table_data:first-child { page-break-before: never; } 
     </style> 
    </head> 
    <body> 
'; 
for ($i = 0; $i <= 5; $i++) { 
    $pdf_content = ' 
     <table width="450" border="0" cellpadding="5" class="table_data"> 
     <tr> 
      <td class="left_col">3. Chassis No</td> 
      <td>: <b>' . $chass_no . '</b></td> 
     </tr> 
     <tr> 
      <td class="left_col">4. Engine No. </td> 
      <td>: <b>' . $engine_id . '</b></td> 
     </tr> 
     </table> 
    '; 
} 
$html_content = '</body></html>'; 

$name = 'UsersActivityReports/' . date("d-m-y") . rand() . '.pdf'; 
createPDF($pdf_content, $name); 
?> 

<iframe class="prv_pdf" src="<?php echo $name ?>#zoom=50" height="300px" width="440px"> 
Verwandte Themen