FPDF: Header, footer et base de données

chris_fnx
Invité n'ayant pas de compte PHPfrance

04 avr. 2005, 08:41

Bonjour,

Après avoir essayé avec toutes sortes de codes ce week-end, j'ai enfin trouvé un code qui fonctionne bien pour la création d'un PDF à partir de ma base de données.
En revanche, je ne sais pas comment intégrer les header et footer à mon code. J'ai copié les fonctions header et footer, mais comment dois-je adapter le code pour que les entêtes et pieds de page apparaissent? J'ai momentanément caché (//) la partie de code nommée "Instanciation de la classe dérivée", parce que plus rien ne fonctionne si je la laisse telle quel.
J'ai posé également la question sur le forum du site de téléchargement, sans succès encore.

Allez voir le résultat actuel à l'adresse http://www.fnx.ch/fr/liste_pdf_forum_2.php

Mon code se trouve ci-dessous:

<?php
define('FPDF_FONTPATH','fpdf/font/');
require('fpdf/fpdf.php');

//Connect to your database
include("mas_liste/utilitaires/connect.php");

//PDF USING MULTIPLE PAGES
//FILE CREATED BY: Carlos José Vásquez Sáez
//YOU CAN CONTACT ME: [email protected]
//FROM PUNTA ARENAS, MAGALLANES
//INOVO GROUP - http://www.inovo.cl

//define('FPDF_FONTPATH','font/');
//require('fpdf.php');

//Connect to your database
//include("conectmysql.php");

//Create new pdf file
$pdf=new FPDF();

//Open file
$pdf->Open();

//Disable automatic page break
$pdf->SetAutoPageBreak(false);

//Add first page
$pdf->AddPage();



class PDF extends FPDF
{
//En-tête
function Header()
{
//Logo
$this->Image('Haut',10,8,33);
//Police Arial gras 15
$this->SetFont('Arial','B',6);
//Décalage à droite
$this->Cell(80);
//Titre
$this->Cell(30,10,'Titre',1,0,'C');
//Saut de ligne
$this->Ln(20);
}

//Pied de page
function Footer()
{
//Positionnement à 1,5 cm du bas
$this->SetY(-15);
//Police Arial italique 8
$this->SetFont('Arial','I',8);
//Numéro de page
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
/*
//Instanciation de la classe dérivée
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
for($i=1;$i<=40;$i++)
$pdf->Cell(50,10,'Impression de la ligne numéro '.$i,0,1);
$pdf->Output();
*/


//set initial y axis position per page
$y_axis_initial = 50;

//print column titles for the actual page
$pdf->SetFillColor(232,232,232);
$pdf->SetFont('Arial','B',6);
$pdf->SetY($y_axis_initial);
$pdf->SetX(5);
$pdf->Cell(20,6,'Instrument0',1,0,'L',1);
//$pdf->Cell(20,6,'Instrument0',1,0,'L',1);
$pdf->Cell(20,6,'Marque0',1,0,'L',1);
$pdf->Cell(20,6,'Modèle0',1,0,'R',1);

//Set Row Height
$row_height = 4;

$y_axis = $y_axis_initial + $row_height;
//$y_axis = $y_axis + $row_height;

//Select the Products you want to show in your PDF file
$result=mysql_query('select instrument,marque,modele from liste ORDER BY instrument',$bdd);

//initialize counter
$i = 0;

//Set maximum rows per page
$max = 25;

while($row = mysql_fetch_array($result))
{
//If the current row is the last one, create new page and print column title
if ($i == $max)
{
$pdf->AddPage();

//print column titles for the current page
$pdf->SetY($y_axis_initial);
$pdf->SetX(5);
$pdf->Cell(20,6,'Instrument1',1,0,'L',1);
$pdf->Cell(20,6,'Marque1',1,0,'L',1);
$pdf->Cell(20,6,'Modèle1',1,0,'R',1);

//Go to next row
$y_axis = $y_axis_initial + $row_height;

//Set $i variable to 0 (first row)
$i = 0;
}

$instrument = $row['instrument'];
$marque = $row['marque'];
$modele = $row['modele'];

$pdf->SetY($y_axis);
$pdf->SetX(5);
$pdf->Cell(20,6,$instrument,1,0,'L',1);
$pdf->Cell(20,6,$marque,1,0,'L',1);
$pdf->Cell(20,6,$modele,1,0,'R',1);

//Go to next row
$y_axis = $y_axis + $row_height;
$i = $i + 1;
}

mysql_close($bdd);


//Create file
$pdf->Output();
?>

Merci
chris_fnx

Administrateur PHPfrance
Administrateur PHPfrance | 658 Messages

05 avr. 2005, 16:28

Je te conseille de commencer par redefinir le header et footer de ta classe.
Ensuite il ne sert a rien d'instancier la classe FPDF. Il faut juste instancier la classse PDF dont tu as redéfini les methodes header() et footer().

Sinon consulte les tutos sur le site de la fpdf.org

++

cyruss
Co-auteur du livre PHP 7 avancé
Co-auteur du livre Performances PHP : Audit et optimisation LAMP
Co-fondateur de l'Association Française des Utilisateurs de PHP http://www.afup.org
Formateur PHP pour Openska