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

Bibliothèques et frameworks PHP Discussion :

[PDF] FPDF et les images


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut [PDF] FPDF et les images
    Salut tout le monde,

    Je vous explique mon problème,

    je suis en train de développez une fonctionnalité de géneration de pdf ( avec la classe FPDF ).

    en gros je vais chercher en base des chaines de caractères et je les affiche sur mon pdf, jusque la pas de souci.

    le problème c'est que dans mes chaines de carac j'ai des images ( ex: balise <img src="tutu/tutu.png" height="50" width="50" /> )
    et du text.

    je dois faire un fonction qui va parcourir la chaine, stocker le text jusqu'a ce qu'il rencontre une balise <img, stocker la source de l'image, width et height, continuez a parcourir le text jusqu'a la prochaine image en stockant source,width,heigth, et on parcour la suite de la chaine jusqu'a la fin de celle ci
    cette fonction est faite,

    et ensuite je dois afficher cette chaine de caractère sur mon pdf en affichant text1 puis img 1 text 2 puis img 2 et c'est la que ça coince...

    ca fais 2 semaine que je galère .. je ne suis pas très doué pour manipuler les chaines de carac en PHP

    Voici ou j'en suis: a savoir pas grand chose
    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
    require('FPDF/fpdf.php');
     
    $chaine="Salut tout le monde, je vais vous montrer les images de guitare et de basse tout d'abord voici la <span>guitare</span> <img src='images/guitare.png' width='510' height='45'/> ensuite va venir la <span> basse </span> <img src='images/basse.jpg' width='150' height='41' />, &agrave; toi de jou&eacute";
     
    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Helvetica','B',16);
    $pdf->SetFillColor(6,211,248);
    $pdf->SetTextColor(243,11,180);
    $pdf->Cell(0,10,'INSTRUMENTS',1,1,'C',TRUE);
     
    $pdf->Ln(10);
    $pdf->SetFillColor(20,150,50);
    $pdf->SetTextColor(255,255,255);
    $pdf->Cell(0,10,filtreQuest($chaine),0,1,'L',TRUE);
    $pdf->Ln(40);
    $pdf->MultiCell(0,10,$chaine,1,1,'L',FALSE);
     
    $pdf->Output();
     
     
    function filtreQuest($chaine){
      $chaine=str_replace('<span>', '', $chaine);
      $chaine=str_replace('</span>', '', $chaine);
     
            if(strpos($chaine, '<img')){
              $chaine=str_replace('<', '|', $chaine);
              $chaine=str_replace('/>', '|', $chaine);
              $tab=explode('|', $chaine);
              foreach ($tab as $key => $value) {
     
                if (strpos($value, 'img ')===0) {
                  $text[$key]=f_get_info_image($value);
                 } else{
                  $text[$key]=$value;
                 }
     
              }
     
            }
      return $text;
    }
     
     
     
    var_dump(filtreQuest($chaine));
     
     
     
     
    function f_get_info_image($imgBalise){
     
      $res=array('src'=>'','height'=>'', 'width'=>'');
     
      $imgBalise = str_replace('"', '|', $imgBalise);
      $imgBalise = str_replace("'", '|', $imgBalise);
     
      $pos_src=strpos($imgBalise, 'src=|');
      if($pos_src===false){}else{
        $endPosSrc=strpos($imgBalise, "|",$pos_src+5);
        $res["src"]=substr($imgBalise, $pos_src+5, $endPosSrc-($pos_src+5));
      }
      $pos_h=strpos($imgBalise, 'height=|');
      if($pos_h===false){}else{
        $endPosH=strpos($imgBalise, "|",$pos_h+8);
        $res["height"]=substr($imgBalise, $pos_h+8, $endPosH-($pos_h+8));
      }
      $pos_w=strpos($imgBalise, 'width=|');
      if($pos_w===false){}else{
        $endPosW=strpos($imgBalise, "|",$pos_w+7);
        $res["width"]=substr($imgBalise, $pos_w+7, $endPosW-($pos_w+7));
      }           
     
      return $res;
    }
    merci d'avacne

  2. #2
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut resultat du var_dump
    voici le resultat du var_dump qui est au milieu du code:

    array (size=5)
    0 => string 'Salut tout le monde, je vais vous montrer les images de guitare et de basse tout d'abord voici la guitare ' (length=106)
    1 =>
    array (size=3)
    'src' => string 'images/guitare.png' (length=18)
    'height' => string '45' (length=2)
    'width' => string '510' (length=3)
    2 => string ' ensuite va venir la basse ' (length=29)
    3 =>
    array (size=3)
    'src' => string 'images/basse.jpg' (length=16)
    'height' => string '41' (length=2)
    'width' => string '150' (length=3)
    4 => string ', &agrave; toi de jou&eacute' (length=28)

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu t'es embeté pour rien.
    Il y a des classes qui font tout ça comme html2pdf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $chaine="Salut tout le monde, je vais vous montrer les images de guitare et de basse tout d'abord voici la <span>guitare</span> <img src='images/guitare.png' width='510' height='45'/> ensuite va venir la <span> basse </span> <img src='images/basse.jpg' width='150' height='41' />, &agrave; toi de jou&eacute";
    require('/html2pdf/html2pdf.class.php');
    $pdf = new html2pdf();
    $pdf->WriteHTML($chaine);
    $pdf->Output("instruments.pdf");
    De même pour traiter des chaines de caractères, tu as les expressions régulières, ou pour le HTML / XML des classes comme DomDocument ou Simple XML.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut re:
    Je dois utilisé la classe fpdf et non html2pdf ... Cahier des charges on va dire

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    html2pdf utilise fpdf.
    je ne vois de toute facon pas qui pourrait préférer le vilain code que tu es en train d'écrire à une classe performante, juste pour ne pas revenir sur son cahier des charges.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2015
    Messages : 9
    Points : 3
    Points
    3
    Par défaut re:
    Mon maitre de stage

Discussions similaires

  1. Equivalent à PDF.js pour les images?
    Par Carhiboux dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/01/2019, 21h37
  2. [FPDF] problème avec les images dans un tableau dynamique
    Par GADSN dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 08/04/2009, 11h11
  3. [FPDF] Extraire en php les images d'un PDF
    Par Pgs dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/02/2008, 10h17
  4. [FPDF] Utiliser les images Gif
    Par ygrim dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 19/07/2007, 16h45

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