【问题标题】:Dynamic pages using FPDF使用 FPDF 的动态页面
【发布时间】:2010-05-20 13:11:35
【问题描述】:

我在生成 pdf 的页面上有一个链接。我正在使用 fpdf 。我的要求是我们必须生成一个包含不同页面的单个 pdf,每个页面都有页脚和页眉。

例如学生通过现金、支票付款。我必须生成一个显示付款方式、金额等的 pdf。我正在为每种工具类型运行一个循环,但问题是 pdf 仅显示一个条目,因为我认为它被覆盖了。我尝试了分页符,但现在成功了。

代码

require_once(APP_PHYSICAL_PATH."libs/fpdf/fpdf.php");

class PDF extends FPDF
{
    function Header()
    {
        $this->Image(APP_WEBROOT_PHYSICAL_PATH.'app_images/site-logo.gif',10,8,33);
        $this->Ln(15);

        $this->SetFont('Arial','B',12);
        $this->MultiCell(0,0,'mysite.',0,'C');
        $this->Ln(5);

        $this->SetFont('Arial','',10);
        $this->MultiCell(0,0,'67, addd2',0,'C');
        $this->Ln(5);

        $this->MultiCell(0,0,'Tel No - 010000000, Website:www.site.com',0,'C');
        $this->Ln(10);
    }

    function Footer()
    {
        $this->Ln(10);
        $this->SetFont('Arial','B',10);
        $this->MultiCell(0,0,'For mycomany.',0,'R');
        $this->Ln(20);
        $this->MultiCell(0,0,'Center Manager',0,'R');
    }

}
for($i=0;$i<3;$i++)
{ 
$pdf = new PDF();

$pdf->AddPage('P','Letter');
$pdf->SetAuthor("MYCompany");
$pdf->SetCreator("MYCompany");
$pdf->SetFont('Arial', 'B', 12);
$pdf->MultiCell(0, 0, 'Acknowledgement', 0, 'C');
$pdf->Ln(10);

$pdf->SetFont('Arial', 'B', 10);
$pdf->MultiCell(0,0,"Date: ".$details[0]['datepaid'],0,'L');
$pdf->MultiCell(0,0, "Acknowledgement No : ".date('Y/m/d')."/".$details[0]['pk_paymentid'],0,'R');
$pdf->Ln(10);

$pdf->SetFont('Arial','',10);
$pdf->MultiCell(0, 0, "We acknowledge receipt of Rs ".$details[0]['amountpaid']." from Ms/Mr ".$details[0]['fullname'], 0, 'J');
$pdf->Ln(5);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Course Name',1,0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,$details[0]['name'],1,0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Course Fee (Total)','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,round($courseData[0]['courseFee']),'LBR',0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,"Service Tax",'LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,round($courseData[0]['serviceTax']),'LBR',0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Total Amount Payable','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,round($courseData[0]['totalAmount']),'LBR',0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Amount Received','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,round($details[0]['amountpaid']),'LBR',0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Balance Amount Payable','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$balance=round($courseData[0]['totalAmount']-$details[0]['amountpaid']);
if($balance<1)
{
$balance=0;
}
 $pdf->Cell(90,7,$balance,'LBR',0,'L');
// $pdf->Cell(90,7,$courseData[0]['totalAmount']-$details[0]['amountpaid'],'LBR',0,'L');
 $pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Mode of Payment','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,"",'LBR',0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Cheque/Demand Draft/Credit Card Number','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,"",'LBR',0,'L');
$pdf->Ln(7);

$pdf->SetFont('Arial','B',10);
$pdf->Cell(90,7,'Name of Bank and Branch','LBR',0,'L');
$pdf->SetFont('Arial','',10);
$pdf->Cell(90,7,"",'LBR',0,'L');
$pdf->Ln(20);

$pdf->SetFont('Arial','I',10);
$pdf->MultiCell(0,0,'* Service Tax Regn No _____________',0,'L');
$pdf->Ln(10);

$pdf->SetFont('Arial','',10);
$pdf->MultiCell(0, 0, 'For further processing of your registeration to the above program, we are forwarding your details to our enrollment center at', 0, 'L');
$pdf->Ln(5);
$pdf->MultiCell(0, 0, 'Centre. For all queries please contact:', 0, 'L');
$pdf->Ln(10);
$pdf->MultiCell(0,0,'myaddress',0,'L');
}
//$pdf->Output();
$pdf->Output('Enrolment_No_'.$details[0]['enrolmentid'].".pdf",'D');

请帮帮我。

谢谢

【问题讨论】:

  • 那么你的问题到底是什么?你说的是循环,但在你的代码中没有循环,所以对我来说你只得到一个条目似乎很正常。
  • @wimvds 我已经删除了我在问题中提到的循环。
  • 那么如果您删除了相关代码,您希望我们如何找到您的错误?
  • @wimvds 我已经编辑了问题并现在添加了循环

标签: php fpdf


【解决方案1】:

好的,现在你的错误很明显了。您必须将 $pdf = new PDF(); 放在循环之前。

即。

$pdf = new PDF();
for($i=0;$i<3;$i++)
{ 
    $pdf->AddPage('P','Letter');
    ...

【讨论】:

    【解决方案2】:

    我仔细研究了 fpdi 和 tcpdf。 阅读扩展 pdf 的最佳方式是:

    class PDF extends FPDI { 
        var $_tplIdx;
        function Header() {}    
        function Footer() {}        
    }
    
    $pdf = new PDF();
    $tpages = $pdf->setSourceFile("yourpdf.pdf");
    /**
    * Set a source-file
    *
    * @param string $filename a valid filename
    * @return int number of available pages
    */
    

    ,...然后简单地循环页面就完成了:)

    【讨论】:

    • 为了能够运行我的示例,您需要:fpdi:link 和:tcpdf with tpl:link
    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 1970-01-01
    • 2011-02-02
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多