2010-05-20 8 views
0

J'ai un lien sur une page qui génère un pdf. J'utilise fpdf pour la même chose. Mon exigence est que nous devons générer un pdf unique avec des pages différentes ayant chacune un pied de page et un en-tête.Pages dynamiques utilisant FPDF

E.g. Un étudiant effectue un paiement en espèces, par chèque. Je dois générer un pdf affichant le mode de paiement, le montant etc. Je cours une boucle pour chaque type d'instrument mais le problème est que le pdf montre une entrée seulement parce que je pense qu'il est écrasé. J'ai essayé le saut de page mais avec succès maintenant.

code

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'); 

S'il vous plaît aidez-moi à ce sujet.

Merci

+0

Alors quelle est exactement votre problème? Vous parlez d'une boucle, mais dans votre code il n'y a pas de boucle, donc il me semble tout à fait normal que vous n'ayez qu'une seule entrée. – wimvds

+0

@wimvds J'ai supprimé la boucle que j'ai mentionnée dans la question. –

+0

Alors, comment voulez-vous que nous trouvions votre erreur si vous supprimiez le code approprié? – wimvds

Répondre

2

Ok, maintenant votre erreur est évidente. Vous devez mettre le $pdf = new PDF(); avant votre boucle.

ie.

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

merci de résoudre mon problème. –

0

J'ai regardé près FPDI & tcpdf. La meilleure façon de lire une extension pdf est de cette façon:

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 
*/ 

, ... puis simplement les pages et vous avez terminé :)

+0

Pour être en mesure d'exécuter mon échantillon dont vous avez besoin: FPDI: [link] (http://www.tcpdf.org/) Et: tcpdf avec tpl: [link] (http: // www .setasign.de/products/pdf-php-solutions/fpdi/téléchargements /) –

Questions connexes