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

  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 : 43
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=PHP]<?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.)
    [CODE=PHP]$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
    [CODE=PHP]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');
    ?>
    [CODE=PHP]

    -----------------------
    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 534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 534
    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