Solved

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

Posted on 2008-06-20
3
1,734 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
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
Learn how to set-up PayPal payment integration in your Wufoo form. Allow your users to remit payment through PayPal upon completion of your online form. This is helpful for collecting membership payments, customer payments, donations, and more.

920 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

18 Experts available now in Live!

Get 1:1 Help Now