fpdf et images

fpdf et images - PHP - Programmation

Marsh Posté le 25-03-2006 à 17:41:30    

Bonjour à tous. Alors voilà j'ai un fichier pdf à générer à partir d'une base de données.
Ce fichier pdf va contenir des cours illustrés.
J'arrive à obtenir le cours sans problèmes. Le seul souci que j'ai c'est que lorsque je veux insérer les images dedans, elles superposent le texte. Pour précision, toutes les images n'ont pas la même taille donc je les redimensionne.

Code :
  1. <?php
  2. require('fpdf.php');
  3. include ("../php/connect.php" );
  4. include ("../romain.php" );
  5. class PDF extends FPDF
  6. {
  7.   //En-tête  
  8.   function Header()
  9.   {
  10.    $titre = mysql_query("select TITRE_COURS from cours where ID_COURS='1';" );
  11. $titre = mysql_fetch_array($titre);
  12.     //Police Arial gras 15  
  13.     $this->SetFont('Arial','B',18);
  14.     //Décalage à droite  
  15.     $this->Cell(80);
  16. //Couleurs du cadre, du fond et du texte
  17. $this->SetDrawColor(0,80,180);
  18. $this->SetFillColor(255,255,0);
  19.     $this->SetTextColor(220,50,50);
  20.     //Titre  
  21.     $this->Cell(30,10,$titre[0],1,0,'C');
  22.     //Saut de ligne  
  23.     $this->Ln(20);
  24.   }
  25.   //Pied de page  
  26.   function Footer()
  27.   {
  28.     //Positionnement à 1,5 cm du bas  
  29.     $this->SetY(-15);
  30.     //Police Arial italique 8  
  31.     $this->SetFont('Arial','I',8);
  32.     //Numéro de page  
  33.     $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
  34.   }
  35.  
  36.   function TitreChapitre($num,$lib)
  37. {
  38. $this->AddPage();
  39.     //Arial 14
  40.     $this->SetFont('Arial','',14);
  41.     //Couleur de fond
  42.     $this->SetFillColor(200,220,255);
  43.     //Titre
  44.     $this->Cell(0,6,"$num  $lib",0,1,'L',1);
  45.     //Saut de ligne
  46.     $this->Ln(4);
  47. }
  48. function TitrePartie($num,$lib)
  49. {
  50. //Arial 12
  51. $this->SetFont('Arial','',12);
  52. //Couleur de fond
  53. $this->SetFillColor(255,255,0);
  54. //Titre
  55. $this->Cell(0,6,"$num $lib",0,1,'L',1);
  56. //Saut de ligne
  57. $this->Ln(4);
  58. }
  59. }
  60. //Instanciation de la classe dérivée  
  61. $pdf=new PDF();
  62. $pdf->Open();
  63. $pdf->AliasNbPages();
  64. $chap = mysql_query ("select * from chapitre where ID_COURS='1';" );
  65. while ($donneeschap = mysql_fetch_array ($chap))
  66. {
  67. $num = entier_romain($donneeschap["NUM_CHAPITRE"]);
  68. $pdf->SetFont('Arial','U',14);
  69. $pdf->TitreChapitre($num.') ',$donneeschap['NOM_CHAPITRE']);
  70. $part = mysql_query ("select * from parties where ID_CHAPITRE='".$donneeschap['ID_CHAPITRE']."' order by ORDRE_PARTIE ASC;" );
  71. while ($donneespart = mysql_fetch_array ($part))
  72.  {
  73.  $pdf->TitrePartie($donneespart['ORDRE_PARTIE'].') ',$donneespart['TITRE_PARTIE']);
  74.  $para = mysql_query ("select * from paragraphe natural join parties where paragraphe.ID_PARTIE='".$donneespart["ID_PARTIE"]."' order by ORDRE_PARAGRAPHE ASC;" );
  75.  while ($donneespara = mysql_fetch_array($para))
  76.   {
  77.   $pdf->SetFont('Arial','',12);
  78.   if ($donneespara['CONTENU_PARAGRAPHE'] != "" )
  79.    {
  80.    $pdf->MultiCell(0,5,$donneespara['CONTENU_PARAGRAPHE'],0,1);
  81.    $pdf->Ln(4);
  82.    }
  83.   if ($donneespara["ID_IMAGE"] != NULL)
  84.    {
  85.    $img = "select URL from image where ID_IMAGE='".$donneespara["ID_IMAGE"]."';";
  86.    $img = mysql_query($img);
  87.    $img = mysql_fetch_row($img);
  88.    $size = GetImageSize("../".$img[0]);
  89.    $pdf->Image("../".$img[0],50,10,100);
  90.    }
  91.   }
  92.  }
  93. }
  94. $titre = mysql_query("select TITRE_COURS from cours where ID_COURS='1';" );
  95. $titre = mysql_fetch_array($titre);
  96. $pdf->SetTitle($titre[0]);
  97. $pdf->SetAuthor('www.e-informatik.com');
  98. $pdf->Output("../pdf/".$titre[0].".pdf" );
  99. ?>


 
Est-ce que quelqu'un pourrait me mettre sur la voie car ja patauge depuis quelques heures là.
Merci d'avance.

Reply

Marsh Posté le 25-03-2006 à 17:41:30   

Reply

Marsh Posté le 25-03-2006 à 18:00:57    

En fait c'est dans cette partie du code qu'il y a l'affichage d'un paragraphe et de l'image si le paragraphe en contient une.

Code :
  1. while ($donneespara = mysql_fetch_array($para))
  2. {
  3. $pdf->SetFont('Arial','',12);
  4. if ($donneespara['CONTENU_PARAGRAPHE'] != "" )
  5. {
  6. $pdf->MultiCell(0,5,$donneespara['CONTENU_PARAGRAPHE'],0,1);
  7. $pdf->Ln(4);
  8. }           
  9. if ($donneespara["ID_IMAGE"] != NULL)               
  10. {               
  11. $img = "select URL from image where ID_IMAGE='".$donneespara["ID_IMAGE"]."';";               
  12. $img = mysql_query($img);               
  13. $img = mysql_fetch_row($img);               
  14. $size = GetImageSize("../".$img[0]);               
  15. $pdf->Image("../".$img[0],50,10,100);               
  16. }           
  17. }


Message édité par Melekitto le 25-03-2006 à 18:02:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed