[RESOLU] FPDF : utiliser deux classes

Eléphant du PHP | 161 Messages

18 mai 2017, 08:48

Bonjour à toutes et à tous,

Dans l'élaboration de mon site internet, il est possible de produire des fiches client en PDF, grâce au script que je suis actuellement en train d'élaborer.
Mais n'ayant que peu de connaissances en PHP orienté objet, je ne sais pas comment utiliser deux classes différentes.
En effet, j'aimerais utiliser la classe de base FPDF, mais j'aimerais y accoler d'autres possibilités, comme la transparence des images, grâce à cette classe : http://www.fpdf.org/en/script/script74.php.

Mon fichier se trouve dans le répertoire "functions" à la racine du site, et là où j'exécute mon script, ça se passe dans la partie admin, dans un fichier appelé ficheClient.php.
Ainsi j'appelle donc deux fichiers de cette manière :

require('../functions/fpdf.php');
require('../functions/alphaPDF.php');

Puis je fais le script suivant :
<?php 
require('../functions/fpdf.php');
require('../functions/alphaPDF.php');
if(isset($_POST['id']) && isset($_POST['photo']) && isset($_POST['name']) && isset($_POST['firstName']) && isset($_POST['email']) && isset($_POST['numAd']) && isset($_POST['adresse']) && isset($_POST['cp']) && isset($_POST['ville']) && isset($_POST['num']) && isset($_POST['date_n']) && isset($_POST['date_i']))
{
class PDF extends FPDF
{
// En-tête
function Header()
{
	global $id;
	global $photo;
	global $name;
	global $firstName;
	global $email;
	global $numAd;
    // Logo
    $this->Image($photo,10,10,30);
    // Police Arial gras 15
    $this->SetFont('Arial','B',15);
    // Décalage à droite
    $this->Cell(80);
    // Titre
	$this->SetFont('Arial','B',21);
    $this->Cell(30,40,utf8_decode('Fiche client n°'.$id),0,0,'C');
	$this->SetFont('Arial','I',10);
	$this->Cell(0,6,utf8_decode("Numéro d'adhérent(e) : ".$numAd),1,0,'C');
    // Saut de ligne
    $this->Ln(40);	
}

// 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();
$id = $_POST['id'];
$photo = $_POST['photo'];
$name = $_POST['name'];
$firstName = $_POST['firstName'];
$email = $_POST['email'];
$numAd= $_POST['numAd'];
$adresse = $_POST['adresse'];
$cp = $_POST['cp'];
$ville = $_POST['ville'];
$num = $_POST['num'];
$date_i = $_POST['date_i'];
$date_n = $_POST['date_n'];
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->Cell(34,6,utf8_decode("NOM / Prénom : "),0,'L',false);
$pdf->SetFont('Arial','',12);
$pdf->SetAlpha(0.5);
$pdf->Image('../img/logo.png', 0, 0,-300); 
$pdf->Cell(22,6,mb_strtoupper($name),0,'C',false);
$pdf->Cell(40,6,ucfirst($firstName),0,1);
$pdf->Cell(40,6,ucfirst($firstName),0,1);
$pdf->Output();
}

?>

On remarque que j'ai essayé d'appliquer l'opacité à l'image logo.png grâce à ces lignes :

$pdf->SetAlpha(0.5);
$pdf->Image('../img/logo.png', 0, 0,-300); 

Je sais que je n'ai pas appelé la class AlphaPDF, mais justement là et ma question : comment puis-je l'appeler et où dans mon code car je ne vois pas ?