IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

AFFICHER DES IMAGES (liensdans une BDD) VIA FPDF pour un export en PDF


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    RETRAITE
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Par défaut AFFICHER DES IMAGES (liensdans une BDD) VIA FPDF pour un export en PDF
    Bonjour
    je collectionne des cartes postales
    j'ai une base de données chez 1&1 et avec les données suivants TITRE - NUMERO PAGES DE RANGEMENT et IMAGE (liens vers ma base de données de type http://****/cp_recette/images/recett...aioli_23_2.jpg.
    Je veux via FPDF éditer un pdf avec toute ma BDD.
    Si tout fonctionne
    Nom : cp-recette_aide.jpg
Affichages : 128
Taille : 91,5 Ko

    J'aimerais dans les colonnes VUE afficher l'image de la carte correspondante.
    Je sais qu'il faut utiliser la fonction Image sous fpdf mais je n'y arrive pas. Je suis un petit autoditacte.
    Voici la code ma page

    -------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    <?php
    // Connexion a* la BDD (a* personnaliser)
    //$link = mysqli_connect('localhost','login','mot_de_passe','nom_base');
    $link = mysqli_connect('xxx','xxx','xxx','xxx');
    // Si base de donnaees en UTF-8, utiliser la fonction utf8_decode pour tous les champs de texte a* afficher
     
     
    // Appel de la librairie FPDF
    require("fpdf/fpdf.php");
     
    // Craeation de la class PDF
    class PDF extends FPDF {
    	function placement_nouvelle_page($hauteur) {
         	if (	$this->AcceptPageBreak()
        		&&	!$this->Header
        		&&	!$this->Footer
    			// j'ai rajoutae pour entete et modifiae les 2 lignes avant !!
    			&&	!$this->entete_table
        		&&	(($this->y + $hauteur) > $this->PageBreakTrigger)
        	) {
    			// Automatic page break
    			$x2 = $this->x;
    			$this->AddPage($this->CurOrientation,$this->CurPageSize);
    			$this->x = $x2;
    		}
     
        }	
    	// Header
    	function Header() {
    		// Logo : 8 >position a* gauche du document (en mm), 2 >position en haut du document, 80 >largeur de l'image en mm). La hauteur est calculaee automatiquement.
    		//le logo est dans la racine même
    		$this->Image('logo/logo_CP_cuisine.jpg',15,2);
    		// Saut de ligne 20 mm
    		$this->Ln(15);
    		// Titre gras (B) police Helbetica de 11
    		$this->SetFont('Helvetica','B',11);
    		// fond de couleur gris (valeurs en RGB)
    		$this->setFillColor(230,230,230);
     		// position du coin supaerieur gauche par rapport a* la marge gauche (mm)
    		$this->SetX(70);
    		// Texte : 60 >largeur ligne, 8 >hauteur ligne. Premier 0 >pas de bordure, 1 >retour a* la ligneensuite, C >centrer texte, 1> couleur de fond ok	
    		$this->Cell(120,8,'LES CARTES POSTALES "RECETTES DE CUISINE"',0,1,'C',1);
    		// Saut de ligne 10 mm
    		$this->Ln(5);		
    	}
    	// Footer
    	function Footer() {
    		$today = date("j/n/Y");
    		// Positionnement a* 1,5 cm du bas
    		$this->SetY(-15);
    		// Police Arial italique 8
    		$this->SetFont('Helvetica','I',9);
    		// Numaero de page, centrae (C)
    		$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
    		// date d'impression
    		$this->Cell(0,0,'Imprime le '.$today.'                       ',1,1,'C');
    	}
     
    }
     
     
    // 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');
    // $pdf = new PDF('L','mm', array (210,297)); cela fonctionne !!
     
    // Nouvelle page A4 (incluant ici logo, titre et pied de page)
    $pdf->AddPage();
    // Polices par daefaut : Helvetica taille 9
    $pdf->SetFont('Helvetica','',7);
    // Couleur par daefaut : noir
    $pdf->SetTextColor(0);
    // Compteur de pages {nb}
    $pdf->AliasNbPages();
     
     
    // Fonction en-tete des tableaux en 4 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 a* gauche)	
    	$pdf->SetX(10);
    	$pdf->Cell(95,8,'RECETTE',1,0,'C',1);	// 70 >largeur colonne, 8 >hauteur colonne
    	// position de la colonne 2 
    	$pdf->SetX(95); 
    	$pdf->Cell(20,8,'RANGEMENT',1,0,'C',1);	// 70 >largeur colonne, 8 >hauteur colonne
    	// position de la colonne 3 
    	$pdf->SetX(115); 
    	$pdf->Cell(90,8,'VUE',1,0,'C',1);
    	$pdf->Ln(); // Retour a* la ligne
    }
     
    // AFFICHAGE EN-TaŠTE DU TABLEAU
    // Position ordonnaee de l'entete en valeur absolue par rapport au sommet de la page 
    $position_entete = 40;
    // police des caracta¨res
    $pdf->SetFont('Helvetica','',7);
    $pdf->SetTextColor(0);
    // on affiche les en-tetes du tableau
    entete_table($position_entete);
    $position_detail = 58; // Position ordonnaee = $position_entete+hauteur de la cellule d'en-tete (50+8)
     
     
    $requete2 = "SELECT * FROM cp_recette ORDER BY titre ASC";
    $result2 = mysqli_query($link, $requete2);
    $cheminimages = "http://monsite/cp_recette/images/";
     
     
    while ($data_visit = mysqli_fetch_array($result2))
    	{
    		$y_debut_ligne = $pdf->GetY();
     
    	if ($y_debut_ligne > $pdf->GetPageHeight() - $position_entete) {
     
    		$pdf->AddPage();
     
    		entete_table($position_entete);
     
    		$y_debut_ligne = $pdf->GetY(); 
    	}
     
    		$pdf->placement_nouvelle_page(8); // 8 mm = hauteur des cellules
    		$position_detail = $pdf->GetY();
     
    	// position abcisse de la colonne 1 (10mm du bord)
    	$pdf->SetY($position_detail);
    	$pdf->SetX(10);
    	$pdf->MultiCell(85,8,utf8_decode($data_visit['titre']),1,'C');
    	// position abcisse de la colonne 2 (95 = 10+85)
    	$pdf->SetY($position_detail);
    	$pdf->SetX(95); 
    	$pdf->MultiCell(20,8,utf8_decode($data_visit['nmr_page']),1,'C');
     
     
    	// INSERTION IMAGE	
    	// position abcisse de la colonne image
    	$photorecette = utf8_decode($data_visit['vue']);
    	$pdf->SetY($position_detail);
    	$pdf->SetX(115);
    	$couverturerecette = "$cheminimages$photorecette";
    	$pdf->MultiCell(90,8, $couverturerecette,1,'C');
     
     
     
     
    	// on incraemente la position ordonnaee de la ligne suivante (+8mm = hauteur des cellules)	
    	$position_detail += 8; 			
    	}
    	mysqli_free_result($result2);
     
     
     
    $pdf->Output('Les_CP_recettes_de_cuisine_de_Laurent.pdf','I'); // affichage a* l'aecran
    // Ou export sur le serveur
    // $pdf->Output('F', '../test.pdf');
    ?>

    -----------------------
    Je remercie par avance les personnes pouvant m'aider
    Cordialement
    Laurent

    PS : ma ligne au début "$this->Image('logo/logo_CP_cuisine.jpg',15,2);" fonctionne bien...

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 671
    Par défaut
    je vous conseille de mettre le code en forme comme indiqué à l'adresse suivante pour le rendre plus lisible dans vos messages :
    https://club.developpez.com/regles/#LIII-E
    vous pouvez éditer votre 1er message pour faire cette modification.

    en ce qui concerne votre question, je vous que vous utilisez déjà la méthode "Image" dans l'entête du fichier pdf. est ce que ça fonctionne comme vous voulez à cet endroit ?

Discussions similaires

  1. [MySQL] Afficher une IMAGE dans une BDD via PHP
    Par lothar59 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/01/2011, 15h17
  2. afficher des images dans une table
    Par battit64 dans le forum ASP.NET
    Réponses: 17
    Dernier message: 25/04/2008, 00h06
  3. afficher des images dans une listebox
    Par soforan dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 07/04/2008, 19h11
  4. [Débutant] Charger et afficher des images les unes apres les autres
    Par kharon dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/03/2007, 08h51
  5. Afficher des images sur une grille
    Par Coussati dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/10/2005, 09h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo