2010-05-20 62 views
0

我在生成PDF的頁面上有一個鏈接。我正在使用fpdf。我的要求是我們必須生成一個包含頁腳和頁眉的不同頁面的單個pdf。使用FPDF的動態​​頁面

E.g.學生通過現金,支票進行支付。我必須生成一個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'); 

請幫我在這。

謝謝

+0

那麼到底是什麼問題了嗎?你提到了一個循環,但是在你的代碼中沒有循環,所以對我來說看起來很正常,你只能得到一個條目。 – wimvds 2010-05-20 13:25:41

+0

@wimvds我已經刪除了我在問題中提到的循環。 – 2010-05-20 13:33:42

+0

那麼如果您刪除了相關的代碼,您如何指望我們發現錯誤? – wimvds 2010-05-20 13:39:04

回答

2

好的,所以現在你的錯誤是非常明顯的。您必須在循環之前放置$pdf = new PDF();

即。

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

謝謝它解決了我的問題。 – 2010-05-20 14:20:00

0

我把在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 
*/ 

,...那麼簡單循環的網頁,你就大功告成了:)

+0

爲了能夠運行我的例子中,你需要: FPDI: [鏈接](http://www.tcpdf.org/) 和: TCPDF與TPL: [鏈接](HTTP:// WWW .setasign.de /產品/ PDF的PHP解決方案/ FPDI /下載/) – 2013-01-22 21:29:37