1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
// extraction des données à afficher dans le sous-titre
$requete = "SELECT * FROM `inscrits` WHERE categorie = 'S'";
$result = mysqli_query($link, $requete);
// tableau des résultats de la ligne > $data_voyageur['nom_champ']
$data_inscrit = mysqli_fetch_array($result);
mysqli_free_result($result);
// Appel de la librairie FPDF
require("fpdf/fpdf.php");
// On active la classe une fois pour toutes les pages suivantes
// Format portrait (>P) ou paysage (>L), en mm (ou en points > pts), A4 (ou A5, etc.)
$pdf = new PDF('P','mm','A4');
// Nouvelle page A4 (incluant ici logo, titre et pied de page)
$pdf->AddPage();
// Polices par défaut : Helvetica taille 9
$pdf->SetFont('Helvetica','',9);
// Couleur par défaut : noir
$pdf->SetTextColor(0);
// Compteur de pages {nb}
$pdf->AliasNbPages();
$titre = 'u6';
// Sous-titre calées à gauche, texte gras (Bold), police de caractère 11
$pdf->SetFont('Helvetica','B',11);
// couleur de fond de la cellule : gris clair
$pdf->setFillColor(230,230,230);
// Cellule avec les données du sous-titre sur 2 lignes, pas de bordure mais couleur de fond grise
//$pdf->Cell(70,6,$titre,0,1,'L',1);
$pdf->Cell(70,6,'DU '.$data_inscrit['date_entrainement'] . ' AU '.strtoupper(utf8_decode($data_inscrit['date_entrainement'])),0,1,'L',1);
$pdf->Ln(5); // saut de ligne 10mm
// Fonction en-tête des tableaux en 3 colonnes de largeurs variables
function entete_table($position_entete) {
global $pdf;
$pdf->SetDrawColor(183); // Couleur du fond RVB
$pdf->SetFillColor(221); // Couleur des filets RVB
$pdf->SetTextColor(0); // Couleur du texte noir
$pdf->SetY($position_entete);
// position de colonne 1 (10mm à gauche)
$pdf->SetX(10);
$pdf->Cell(60,8,'Nom',1,0,'C',1); // 60 >largeur colonne, 8 >hauteur colonne
// position de la colonne 2 (70 = 10+60)
$pdf->SetX(70);
$pdf->Cell(60,8,'Date naissance',1,0,'C',1);
// position de la colonne 3 (130 = 70+60)
$pdf->SetX(130);
$pdf->Cell(30,8,'id',1,0,'C',1);
$pdf->Ln(); // Retour à la ligne
}
// AFFICHAGE EN-TÊTE DU TABLEAU
// Position ordonnée de l'entête en valeur absolue par rapport au sommet de la page (60 mm)
$position_entete = 50;
// police des caractères
$pdf->SetFont('Helvetica','',9);
$pdf->SetTextColor(0);
// on affiche les en-têtes du tableau
entete_table($position_entete);
$position_detail = 58; // Position ordonnée = $position_entete+hauteur de la cellule d'en-tête (60+8)
$requete2 = "SELECT * FROM `inscrits` WHERE categorie = 'S'";
$result2 = mysqli_query($link, $requete2);
while ($data_visit = mysqli_fetch_array($result2)) {
// position abcisse de la colonne 1 (10mm du bord)
$pdf->SetY($position_detail);
$pdf->SetX(10);
$pdf->MultiCell(60,8,$data_visit['nom'],1,'C');
// position abcisse de la colonne 2 (70 = 10 + 60)
$pdf->SetY($position_detail);
$pdf->SetX(70);
$pdf->MultiCell(60,8,utf8_decode($data_visit['date_naissance']),1,'C');
// position abcisse de la colonne 3 (130 = 70+ 60)
$pdf->SetY($position_detail);
$pdf->SetX(130);
$pdf->MultiCell(30,8,$data_visit['id'],1,'C');
// on incrémente la position ordonnée de la ligne suivante (+8mm = hauteur des cellules)
$position_detail += 8;
}
mysqli_free_result($result2);
// Nouvelle page PDF
$pdf->AddPage();
// Polices par défaut : Helvetica taille 9
$pdf->SetFont('Helvetica','',11);
// Couleur par défaut : noir
$pdf->SetTextColor(0);
// Compteur de pages {nb}
$pdf->AliasNbPages();
$pdf->Cell(500,20,utf8_decode('Plus rien à vous dire ;-)'));
$pdf->Output('test.pdf','I'); // affichage à l'écran
// Ou export sur le serveur
// $pdf->Output('F', '../test.pdf'); |
Partager