在EZPDF中一次生成多个PDF

时间:2016-11-25 09:58:20

标签: php pdf ezpdf

我不知道为什么它不起作用。我使用while循环生成多个带有ezpdf类的pdf,并且只创建了1个pdf。我也试过“循环”#39;但仍然是一样的。我该怎么做才能获得多个pdf?

include ('class.ezpdf.php');
$limit = 1;
while($limit < 5){
  $colw = array(      80 ,    40,   220,    80,     40  );//column widths
 $rows = array(
     array('company','size','desc','cost','instock'),
     array("WD", "80GB","WD800AAJS SATA2 7200rpm 8mb"        ,"$36.90","Y"),

 );

 //x is 0-600, y is 0-780 (origin is at bottom left corner)
 $pdf =& new Cezpdf('LETTER');

 $total=0;
 $curr_x=80;
 $curr_y=600;
 foreach($rows as $r)
 {
     $xoffset = $curr_x;
     foreach($r as $i=>$data)
     {
         $pdf->setColor(0/255,0/255,0/255);
         $pdf->addText( $xoffset, $curr_y , 10, $data );
         $xoffset+=$colw[$i];
     }
     $curr_y-=20;
 }
define('MY_FILENAME', 'testDoc'.$limit.'.pdf');
$pdfcode = $pdf->ezOutput();
$fp = fopen(MY_FILENAME, 'wb');
fwrite($fp, $pdfcode);
fclose($fp); 

}

1 个答案:

答案 0 :(得分:1)

也许我认为您的问题发生是因为您尝试在循环中使用 define()设置常量值。 我测试了它,并且define-variable(MY_FILENAME)在循环中始终具有相同的值。似乎PHP没有再次设置定义的变量。

你的解决方案是用这样的常规变量替换你的定义变量(MY_FILENAME)......

for ($i = 0; $i < 10; $i++)
{
    $myPDFFile = "PDF" . $i . ".pdf";

    $pdf = new Cezpdf('A4');    // create CezPDF-object

    // write content to PDF-file

    $pdfCode = $pdf->output();  // content of PDF to variable

    $file = fopen($myPDFFile, "wb");
    fwrite($file, $pdfCode);
    fclose($file);
}

而不是

for ($i = 0; $i < 10; $i++)
{
    define(MY_FILENAME, "testDoc" . $i . ".pdf");
    ...
}

我希望这对你有用。