如何使用 mpdf 创建多个 pdf 文件 API

How can create multiple pdf files using mpdf API

如何使用 mpdf 创建多个 pdf 文件 API。

当我尝试使用 mpdf 创建时,我收到类似

的错误消息

Fatal error: Cannot redeclare class mPDF

$sql1=mysql_query("SELECT * FROM $tbl_name");
while($row=mysql_fetch_array($sql1))
{
    $Alert_date=$row['Alert_Mail_Date'];


    $cart_body='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>New Order Placed</title>
    </head>
    <body>
    <table width="550" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="400" align="left" valign="top">
    <a style="font-size:16px"><strong>.$Alert_date.</strong></a><br />
    </body>
    </html>';

    include("APIs/mpdf/mpdf.php");
    // Define a new mPDF document using utf-8 fonts
    $mpdf=new mPDF('utf-8');
    $ran= rand(0,9999999);
    //$mpdf = new mPDF('ta',array(210,297)); //array(210,297) --> A4 Size..
    $mpdf->SetAutoFont(AUTOFONT_ALL,array(210,297));
    $mpdf->WriteHTML($cart_body);
     $filename="/opt/lampp/htdocs/Invoice/invoice_PDF/".$ran."test.pdf";
    $mpdf->Output($filename,'F');
    //$mpdf->Output();

}

您不断重新声明 mpdf。 而是在循环之前声明它。

include("APIs/mpdf/mpdf.php");
$sql1=mysql_query("SELECT * FROM $tbl_name");
while($row=mysql_fetch_array($sql1))
{
    $Alert_date=$row['Alert_Mail_Date'];


    $cart_body='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>New Order Placed</title>
    </head>
    <body>
    <table width="550" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="400" align="left" valign="top">
    <a style="font-size:16px"><strong>.$Alert_date.</strong></a><br />
    </body>
    </html>';


    // Define a new mPDF document using utf-8 fonts
    $mpdf=new mPDF('utf-8');
    $ran= rand(0,9999999);
    //$mpdf = new mPDF('ta',array(210,297)); //array(210,297) --> A4 Size..
    $mpdf->SetAutoFont(AUTOFONT_ALL,array(210,297));
    $mpdf->WriteHTML($cart_body);
     $filename="/opt/lampp/htdocs/Invoice/invoice_PDF/".$ran."test.pdf";
    $mpdf->Output($filename,'F');
    //$mpdf->Output();

}

是的,您可以使用 mpdf 生成多个 pdf,您只需要将 pdf 生成代码放在一个循环中。发生 class 错误的重新声明,因为您必须在没有关闭前一个实例的情况下启动一个新实例。 $mpdf->Output结束实例。尝试在该语句之后重新定义 class。 将 include("APIs/mpdf/mpdf.php"); 保持在循环之外。

该错误仅表示您有一个 class 同名声明不止一次 。也许通过多个包含。 在循环之前使用你的 include 语句。

另请查看 include_once。下次它会救你的。

下面是生成多个 PDF 文件并将它们保存在某些文件中的代码directory.I使用睡眠和时间函数生成唯一的文件名,这样它将覆盖同名的现有文件。

<?php
$record = array('BMW','Mercedes','Toyota');
include_once("../lib/MPDF57/mpdf.php");
foreach($record as $value){
$filename = time().'Performance_review.pdf';
sleep(2);
$mpdf=new mPDF(); 
$mpdf->WriteHTML($value);
$get_pdf   = $mpdf->Output('../pdf-output/'.$filename,'F');
}?>