如何通过mPDF将信息导出到一个单独页面的pdf文件中

Posted

技术标签:

【中文标题】如何通过mPDF将信息导出到一个单独页面的pdf文件中【英文标题】:How to export information into one pdf file of separate page by mPDF 【发布时间】:2021-08-03 18:33:18 【问题描述】:

我正在尝试使用 mPDF、phpmysql 将数据导出为 PDF。 例如,我想将 10 个学生的信息导出到 PDF 到一个文件中,每个学生的信息到每个页面,总共 10 页。但是我下面的代码只为每个页面生成相同的信息。

我尝试了下面的代码,但只显示了一页。

    <?      
        $path = (getenv('MPDF_ROOT')) ? getenv('MPDF_ROOT') : __DIR__;
        ob_clean();
        require_once $path . '/vendor/autoload.php';
          // size in mm
        $mpdf = new \Mpdf\Mpdf([
            'margin_left' => 25.4,
            'margin_right' => 25.4,
            'margin_top' => 38.1,
            'margin_bottom' => 31.75,
            'margin_header' => 0,
            'format' => 'A4',
            'orientation' => 'P',
            'margin_footer' => 0
        ]);
        $mpdf->SetTitle("info");
        $mpdf->SetAuthor("Jack");
        $mpdf->showWatermarkImage = true;
        $mpdf->SetWatermarkText("");
        $mpdf->showWatermarkText = true;
         $mpdf->autoPageBreak = true;
        $mpdf->watermarkTextAlpha = 0.1;
        $mpdf->SetDisplayMode('fullpage');

      
        
        $html = '
        <html>
        <head>
        <style>
        </style>
        </head>
        
        <body style="background: transparent url(ppp.jpg) repeat fixed right top; background-color:#ccffff; ">
';
 $number = count(array_filter($_POST['eid']));
        for($ii=0; $ii<$number; $ii++) 
              
              
          $query = "SELECT 
                      `name`, `title`            
                    FROM `p` , `x` 
                    WHERE `p`.`id`=`x`.`id` AND `x`.`id`='".mysqli_real_escape_string($connect, $_POST["eid"][$ii])."'
                      
                    GROUP BY `x`.`id` ";
        
        $result = mysqli_query($connect, $query);            
        
          while($row = mysqli_fetch_array($result))
          
              $name= $row['name'];
             $title = $row['title'];
                      
$html .= '
        <table  border=1 ellspacing="5" style="border-collapse: collapse; ">
          <tr>
            <td align="left" > 
              Name :
            </td>
            <td align="center" > 
              '.$name.'
            </td>
          </tr>
          <tr>
            <td align="left" > 
              Title :
            </td>
            <td align="center" > 
              '.$title.'
            </td>
          </tr>
        </table>            
        
         </body>
        </html>
        
        ';
        $mpdf->WriteHTML($html);
        $fname='Report.pdf';

 
        $mpdf->Output($fname, 'I');
          
   

我正在从另一个页面发送 id

<input type="hidden" value="<?PHP echo $cell['id'];?>" name="eid[]"  /> 

我想在每个单独的页面中为唯一的学生添加姓名和职务。如果是 10 个学生,那么它应该添加一个 10 页的文件。

谁能给我一些建议,拜托。

【问题讨论】:

您确认$_POST["eid"][$ii] 包含唯一值吗?尝试echo查询字符串进行确认。我建议更改您的查询语句。您实际上可以使用 MySQL IN() 函数执行一次。 感谢 NcXNaV。我已经解决了我的问题。请看我的解决方案。 【参考方案1】:

我已经解决了这个问题。这是位置的问题,我已经使用并解决了如下代码的问题。

    </body>
        </html>
        
        ';
        $mpdf->WriteHTML($html);
        $fname='Report.pdf';

 
        $mpdf->Output($fname, 'I');
      


 </body>
        </html>
        
        ';
        $mpdf->WriteHTML($html);
        $fname='Report.pdf';


        $mpdf->Output($fname, 'I');
          

【讨论】:

以上是关于如何通过mPDF将信息导出到一个单独页面的pdf文件中的主要内容,如果未能解决你的问题,请参考以下文章

PHP中使用mpdf 导出PDF文件的实现方法

如何在 Laravel 中使用 mPDF 从现有 PDF 将每个页面创建为 PDF

将背景图像复制到使用 mpdf 生成的 pdf 中的其他页面

如何删除mPdf中的空白页

PHP - 如何使用 mPDF 合并 PDF

如何将数字签名添加到pdf