【问题标题】:Generate multiple PDF files in loop in php在php中循环生成多个PDF文件
【发布时间】:2012-08-21 08:23:10
【问题描述】:

我想使用 loop 创建多个 pdf 文件。 我将代码如下,但只生成一个文件,所有数据都只写入该文件。如何生成多个文件。

我的代码是..

for($i=0;$i<4;$i++)
{

$pli_ids=explode(",",$string);
foreach($pli_ids as $id)
{

    $data[]=array('inv_no'=>$inv_obj->invoice_number,'Work_order'=>'gandalf','data_type'=>$pli_obj->data_type_c_pl_c,'subscription'=>'subs1','hs_code'=>'hs1');
}
require_once ('include/pdf/class.ezpdf.php');
$pdf =& new Cezpdf();   
$pdf->selectFont('include/fonts/Helvetica.afm');

$pdf->ezSetY(750);
$pdf->ezText(date('d:M:Y'),14); $pdf->ezSetY(720);
$pdf->ezText('To,',14); $pdf->ezSetY(690);
$pdf->ezText('Mr. Kumar {contact Name}',14); $pdf->ezText('Kunal And Company Ltd {Account Name}',14);
$pdf->ezText('No 6, IInd Floor Marine Drive {contact shipping address}',14);$pdf->ezSetY(610);
$pdf->ezText('Mumbai, Pin: 560079',14); $pdf->ezText('Maharashtra',14);$pdf->ezText('Mob.:9977200030',14);
$pdf->ezSetY(550);
$pdf->ezText(' <c:uline>Sub.: Your order of Export Import News </c:uline> ',15);
$pdf->ezSetY(520);  
$pdf->ezText('Dear Mr. Kumar, {Customer Name}',14);
$pdf->ezSetY(490);
$pdf->ezText('Greetings for the day!.',14); $pdf->ezSetY(460);
$pdf->ezText('Thanks for being a valuable customer of Infodrive India,we have enclosed the data as follows.');
$pdf->ezSetY(430);  
$pdf->ezTable($data,array('inv_no'=>'Inv No.','Work_order'=>'Work Order non','data_type'=>'Data Type','subscription'=>'subscription','hs_code'=>'HS Code'),
    '',
    array('showHeadings'=>2,'shaded'=>1,'xPos'=>'right','xOrientation'=>'left','width'=>400));
$filename = "pdf_".$i;
$pdf->ezStream(array("Content-Disposition"=>$filename));

}

【问题讨论】:

  • 你希望这个脚本做什么?将多个pdf文件输出到浏览器?您应该将它们写入某个目录并将它们作为下载提供,或者创建一个包含所有文件的存档。不要将它们泵入用户的浏览器

标签: php


【解决方案1】:

您正在使用ezStream() 将pdf 发送到浏览器。您只能以这种方式发送一个文件。

【讨论】:

  • 嗨,先生。 Jeroen Moons 无论如何都会对我有用。如何将所有pdf保存在一个文件夹中?
  • 哦,嘿,看,不费吹灰之力(你应该投入,而不是我),我找到了this SO question。您可能还想考虑使用不那么难找到相关信息的 PHP PDF 库。
  • 文档:pdf-php.sourceforge.net/pdf-php/readme.php 使用带有输出缓冲的ezOutput() 来捕获输出php.net/manual/en/book.outcontrol.php
  • 当我使用下面的代码时,也只会生成一个 pdf 并且它也不会打开。 header("内容类型:应用程序/pdf"); header("Content-Disposition:attachment;filename=$filename.pdf");打印 $pdf->ezOutput();
  • @RakeshRay 我已经告诉过你:“你只能以这种方式发送一个文件”。如果您需要多个文件,则必须将它们保存在服务器上并一次发送一个。
猜你喜欢
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
相关资源
最近更新 更多