Solved

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

Posted on 2008-06-20
3
1,694 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 250 total points
Comment Utility
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
Comment Utility
Line 1 should read:
class FPDFExtended extends FPDF {
0
 
LVL 6

Author Closing Comment

by:ob1_
Comment Utility
thanks Roonaan!
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Suggested Solutions

A Change in PHP Behavior with Session Write Short Circuit (http://php.net/manual/en/book.session.php#116217) (Winter 2014)** With the release of PHP 5.6 the session handler changed in a way that many think should be considered a bug.  See the note …
Thoughout my experience working on eCommerce web applications I have seen applications succumbing to increased user demand and throughput. With increased loads the response times started to spike, which leads to user frustration and lost sales. I ha…
This video teaches users how to migrate an existing Wordpress website to a new domain.
The viewer will learn how to dynamically set the form action using jQuery.

771 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now