Erreur lors de la génération de pdf avec la classe fpdf
ananias8686
Messages postés
96
Statut
Membre
-
ananias8686 Messages postés 96 Statut Membre -
ananias8686 Messages postés 96 Statut Membre -
Bonjour à tous
J'essaie de générer un pdf avec fpdf.
J'obtiens cette erreur :
Fichier pdf_mc_table.php bien inclus
Mon code
Je ne sais pas si ma classe est bien construite
Pourriez-vous m'expliquer la démarche pour faire fonctionner mon code
Merci d'avance pour votre aide
Cordialement,
Joey
J'essaie de générer un pdf avec fpdf.
J'obtiens cette erreur :
PHP Parse error: syntax error, unexpected 'include' (T_INCLUDE), expecting function (T_FUNCTION) or const (T_CONST) in /home/site/public_html/fpdf/a/ex2.php on line 5
Fichier pdf_mc_table.php bien inclus
Mon code
<?php
require('fpdf.php');
//create new class extending fpdf class
class PDF_MC_Table extends FPDF {
include('pdf_mc_table.php');
// Connect to database
$link = mysqli_connect('localhost','test','test','test');
//make new object
$pdf = new PDF_MC_Table();
$pdf->AddPage();
$pdf->Table($link,'SELECT date,details,sender,content,amount,check_status FROM int_transfer WHERE user_id = 142 UNION SELECT date,details,sender,content,amount,check_status FROM tran_acct WHERE user_id = 142 UNION SELECT date,details,sender,content,amount,check_status FROM int_transfer_admin WHERE user_id = 142 ORDER BY date DESC');
$pdf->SetFont('Arial','',14);
$pdf->SetWidths(Array(20,40,40,30,20,40));
//set line height. This is the height of each lines, not rows.
$pdf->SetLineHeight(5);
//set alignment
$pdf->SetAligns(Array('','R','C','','',''));
//add table heading using standard cells
//set font to bold
$pdf->SetFont('Arial','B',14);
$pdf->Cell(20,5,"Date",1,0);
$pdf->Cell(40,5,"Description",1,0);
$pdf->Cell(40,5,"Beneficiary",1,0);
$pdf->Cell(30,5,"Details",1,0);
$pdf->Cell(20,5,"Amount",1,0);
$pdf->Cell(40,5,"Status",1,0);
//add a new line
$pdf->Ln();
//reset font
$pdf->SetFont('Arial','',14);
//loop the data
foreach($data as $item){
//write data using Row() method containing array of values.
$pdf->Row(Array(
$item['date'],
$item['details'],
$item['sender'],
$item['content'],
$item['amount'],
$item['check_status'],
));
}
$pdf->Output();
}
?>
Je ne sais pas si ma classe est bien construite
Pourriez-vous m'expliquer la démarche pour faire fonctionner mon code
Merci d'avance pour votre aide
Cordialement,
Joey
2 réponses
-
Bonjour
Deplace ton include avant le début de ta class ou sinon mets le dans une fonction . Mais en tout cas tu ne peux pas le laisser là..
-
Je vous remercie pour votre suggestion, J ai fais sortir l include vers le haut mais ça fais de même, apparemment la classe refuse toute mes variables
PHP Parse error: syntax error, unexpected '$link' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST) in /home/site/public_html/fpdf/a/ex2.php on line 7
Je me demande si je dois mettre tout le corps de la classe dans une fonction puisque j ai fermer sa balise a la dernière ligne. Je vais essayer et vous faire un retour-
Par ce que dans une class .. il s'attend à avoir des méthodes ...
class truc{ private $variable = "toto"; // une variable pour ta class par exemple public function foo{ // ici le code de ce que doit faire ta fonction echo $this->variable; // affiche le contenu de ta variable } }- Voici mon nouveau code qui fonctionne parfaitement sauf que la disposition des données n est pas bien faite.
<?php require('mysql_table.php'); class PDF extends PDF_MySQL_Table { protected $ProcessingTable=false; protected $aCols=array(); protected $TableX; protected $HeaderColor; protected $RowColors; protected $ColorIndex; function Header() { // Print the table header if necessary //if($this->ProcessingTable) // $this->TableHeader(); // Title $this->SetFont('Arial','',14); // Logo $this->Image('logo.png',160,15,30); // Saut de ligne $this->Ln(10); $this->y0 = $this->GetY(); // Ensure table header is printed parent::Header(); } function TableHeader() { $this->SetFont('Arial','B',12); $this->SetX($this->TableX); $fill=!empty($this->HeaderColor); if($fill) $this->SetFillColor($this->HeaderColor[0],$this->HeaderColor[1],$this->HeaderColor[2]); foreach($this->aCols as $col) $this->Cell($col['w'],6,$col['c'],1,0,'C',$fill); $this->Ln(); } function Row($data) { $this->SetX($this->TableX); $ci=$this->ColorIndex; $fill=!empty($this->RowColors[$ci]); if($fill) $this->SetFillColor($this->RowColors[$ci][0],$this->RowColors[$ci][1],$this->RowColors[$ci][2]); foreach($this->aCols as $col) $this->Cell($col['w'],5,$data[$col['f']],1,0,$col['a'],$fill); $this->Ln(); $this->ColorIndex=1-$ci; } function CalcWidths($width, $align) { // Compute the widths of the columns $TableWidth=0; foreach($this->aCols as $i=>$col) { $w=$col['w']; if($w==-1) $w=$width/count($this->aCols); elseif(substr($w,-1)=='%') $w=$w/100*$width; $this->aCols[$i]['w']=$w; $TableWidth+=$w; } // Compute the abscissa of the table if($align=='C') $this->TableX=max(($this->w-$TableWidth)/2,0); elseif($align=='R') $this->TableX=max($this->w-$this->rMargin-$TableWidth,0); else $this->TableX=$this->lMargin; } function AddCol($field=-1, $width=-1, $caption='', $align='L') { // Add a column to the table if($field==-1) $field=count($this->aCols); $this->aCols[]=array('f'=>$field,'c'=>$caption,'w'=>$width,'a'=>$align); } function Table($link, $query, $prop=array()) { // Execute query $res=mysqli_query($link,$query) or die('Error: '.mysqli_error($link)."<br>Query: $query"); // Add all columns if none was specified if(count($this->aCols)==0) { $nb=mysqli_num_fields($res); for($i=0;$i<$nb;$i++) $this->AddCol(); } // Retrieve column names when not specified foreach($this->aCols as $i=>$col) { if($col['c']=='') { if(is_string($col['f'])) $this->aCols[$i]['c']=ucfirst($col['f']); else $this->aCols[$i]['c']=ucfirst(mysqli_fetch_field_direct($res,$col['f'])->name); } } // Handle properties if(!isset($prop['width'])) $prop['width']=0; if($prop['width']==0) $prop['width']=$this->w-$this->lMargin-$this->rMargin; if(!isset($prop['align'])) $prop['align']='C'; if(!isset($prop['padding'])) $prop['padding']=$this->cMargin; $cMargin=$this->cMargin; $this->cMargin=$prop['padding']; if(!isset($prop['HeaderColor'])) $prop['HeaderColor']=array(); $this->HeaderColor=$prop['HeaderColor']; if(!isset($prop['color1'])) $prop['color1']=array(); if(!isset($prop['color2'])) $prop['color2']=array(); $this->RowColors=array($prop['color1'],$prop['color2']); // Compute column widths $this->CalcWidths($prop['width'],$prop['align']); // Print header $this->TableHeader(); // Print rows $this->SetFont('Arial','',11); $this->ColorIndex=0; $this->ProcessingTable=true; while($row=mysqli_fetch_array($res)) $this->Row($row); $this->ProcessingTable=false; $this->cMargin=$cMargin; $this->aCols=array(); } } // Connect to database $link = mysqli_connect('localhost','test','test_','test'); $pdf = new PDF(); $pdf->AddPage(); // First table: output all columns $pdf->Table($link,'SELECT date,details,sender,content,amount,check_status FROM int_transfer WHERE user_id = 142 UNION SELECT date,details,sender,content,amount,check_status FROM tran_acct WHERE user_id = 142 UNION SELECT date,details,sender,content,amount,check_status FROM int_transfer_admin WHERE user_id = 142 ORDER BY date DESC'); $pdf->AddPage(); // Second table: specify 3 columns $pdf->AddCol('date',25,'','C'); $pdf->AddCol('details',20,'Type'); $pdf->AddCol('sender',30,'Beneficiary','R'); $pdf->AddCol('content',60,'Details ','C'); $pdf->AddCol('amount',20,'Amount'); $pdf->AddCol('check_status',30,'Status','C'); $prop = array('HeaderColor'=>array(255,150,100), 'color1'=>array(210,245,255), 'color2'=>array(255,255,210), 'padding'=>2); $pdf->Table($link,'SELECT date,details,sender,content,amount,check_status FROM int_transfer WHERE user_id = 142 UNION SELECT date,details,sender,content,amount,check_status FROM tran_acct WHERE user_id = 142 UNION SELECT date,details,sender,content,amount,check_status FROM int_transfer_admin WHERE user_id = 142 ORDER BY date DESC',$prop); $pdf->Output(); ?>
-