0

我不知道为什么它不起作用。我使用 while 循环生成了多个带有 ezpdf 类的 pdf,并且只创建了 1 个 pdf。我也试过'for循环'但还是一样。我应该怎么做才能获得多个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); 

}
4

1 回答 1

1

也许我认为您的问题发生是因为您尝试在循环中使用define()设置一个常量值。我对其进行了测试,并且定义变量(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");
    ...
}

我希望这对你有用。

于 2017-02-28T14:14:42.013 回答