【问题标题】:Generate multiple PDF at once in EZPDF在 EZPDF 中一次生成多个 PDF
【发布时间】:2023-04-09 00:00:01
【问题描述】:

我不知道为什么它不起作用。我已经使用 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); 

}

【问题讨论】:

    标签: php pdf ezpdf


    【解决方案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");
        ...
    }
    

    我希望这对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多