Я не знаю, почему это не работает. Я использовал цикл while для создания нескольких PDF-файлов с помощью класса ezpdf, и создается только 1 PDF-файл. Я также пробовал «для цикла», но все тот же. Что я должен сделать, чтобы достичь более одного 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);
}
Может быть, я думаю, что ваша проблема возникает, потому что вы пытаетесь установить постоянное значение с определить () в петле.
Я проверил это, и переменная 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");
...
}
Я надеюсь, что это будет работать для вас.
Других решений пока нет …