Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Getting error calling function using FPDF to create PDF file with PHP

Posted on 2008-06-20
3
Medium Priority
?
2,212 Views
Last Modified: 2013-12-12
Hi all, I am trying to create a PDF file with FPDF and I get the following error when I call the function that is used to create the table in the file: Fatal error: Call to undefined function: fancytable(). I have a function called fancytable, and then a class called FPDF that calls it.


thanks,
bob
function FancyTable($header,$data) {
 
    //Colors, line width and bold font
    $this->SetFillColor(255,0,0);
    $this->SetTextColor(255);
    $this->SetDrawColor(128,0,0);
    $this->SetLineWidth(.3);
    $this->SetFont('','B');
    //Header
    $w=array(40,35,40,45);
    for($i=0;$i<count($header);$i++)
        $this->Cell($w[$i],7,$header[$i],1,0,'C',1);
    $this->Ln();
    //Color and font restoration
    $this->SetFillColor(224,235,255);
    $this->SetTextColor(0);
    $this->SetFont('');
    //Data
    $fill=0;
    foreach($data as $row)
    {
        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
        $this->Cell($w[2],6,$row[2],'LR',0,'R',$fill);
        $this->Cell($w[3],6,$row[3],'LR',0,'R',$fill);
        $this->Ln();
        $fill=!$fill;
    }
    $this->Cell(array_sum($w),0,'','T');
}
 
 
$pdf=new FPDF();
//Column titles
$header=array('Day','Date','Job Code','Hours');
//Data loading
$data=$tarr;
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Weekly Timesheet');
$pdf->SetFont('Arial','',12);
$pdf->Cell(40,10, "Employee: " . $fname2 . " " . $lname2,1,0,'');
$pdf->Cell(40,10, "Week Ending: " . $wending,1,1,'');
$pdf->SetFont('Arial','',14);
$pdf->FancyTable($header,$data);
$pdf->Output();

Open in new window

0
Comment
Question by:ob1_
  • 2
3 Comments
 
LVL 49

Accepted Solution

by:
Roonaan earned 1000 total points
ID: 21836645
Hi,

By having this function solely, it isn't added to the FPDF class. You can create a small class that extends FPDF class and add the function to it. Then instead of new FPDF use new FPDFExtended. I added an example to show you want I mean.

Kind regards

-r-

class FPDFExtended {
  function FancyTable($header,$data) {
 
    //Colors, line width and bold font
    $this->SetFillColor(255,0,0);
    $this->SetTextColor(255);
    $this->SetDrawColor(128,0,0);
    $this->SetLineWidth(.3);
    $this->SetFont('','B');
    //Header
    $w=array(40,35,40,45);
    for($i=0;$i<count($header);$i++)
        $this->Cell($w[$i],7,$header[$i],1,0,'C',1);
    $this->Ln();
    //Color and font restoration
    $this->SetFillColor(224,235,255);
    $this->SetTextColor(0);
    $this->SetFont('');
    //Data
    $fill=0;
    foreach($data as $row)
    {
        $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
        $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
        $this->Cell($w[2],6,$row[2],'LR',0,'R',$fill);
        $this->Cell($w[3],6,$row[3],'LR',0,'R',$fill);
        $this->Ln();
        $fill=!$fill;
    }
    $this->Cell(array_sum($w),0,'','T');
  }
}
 
 
$pdf=new FPDFExtended();
//Column titles
$header=array('Day','Date','Job Code','Hours');
//Data loading
$data=$tarr;
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Weekly Timesheet');
$pdf->SetFont('Arial','',12);
$pdf->Cell(40,10, "Employee: " . $fname2 . " " . $lname2,1,0,'');
$pdf->Cell(40,10, "Week Ending: " . $wending,1,1,'');
$pdf->SetFont('Arial','',14);
$pdf->FancyTable($header,$data);
$pdf->Output();

Open in new window

0
 
LVL 49

Expert Comment

by:Roonaan
ID: 21836647
Line 1 should read:
class FPDFExtended extends FPDF {
0
 
LVL 6

Author Closing Comment

by:ob1_
ID: 31469387
thanks Roonaan!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

These days, all we hear about hacktivists took down so and so websites and retrieved thousands of user’s data. One of the techniques to get unauthorized access to database is by performing SQL injection. This article is quite lengthy which gives bas…
3 proven steps to speed up Magento powered sites. The article focus is on optimizing time to first byte (TTFB), full page caching and configuring server for optimal performance.
The viewer will learn how to count occurrences of each item in an array.
Wufoo.com provides powerful tools for surveying targeted groups, and utilizing data from completed surveys to find trends, discover areas of demand or customer expectation, and make business decisions on products or services.
Suggested Courses

577 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question