Melekitto | 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 :
- <?php
- require('fpdf.php');
- include ("../php/connect.php" );
- include ("../romain.php" );
- class PDF extends FPDF
- {
- //En-tête
- function Header()
- {
- $titre = mysql_query("select TITRE_COURS from cours where ID_COURS='1';" );
- $titre = mysql_fetch_array($titre);
- //Police Arial gras 15
- $this->SetFont('Arial','B',18);
- //Décalage à droite
- $this->Cell(80);
- //Couleurs du cadre, du fond et du texte
- $this->SetDrawColor(0,80,180);
- $this->SetFillColor(255,255,0);
- $this->SetTextColor(220,50,50);
- //Titre
- $this->Cell(30,10,$titre[0],1,0,'C');
- //Saut de ligne
- $this->Ln(20);
- }
- //Pied de page
- function Footer()
- {
- //Positionnement à 1,5 cm du bas
- $this->SetY(-15);
- //Police Arial italique 8
- $this->SetFont('Arial','I',8);
- //Numéro de page
- $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
- }
-
- function TitreChapitre($num,$lib)
- {
- $this->AddPage();
- //Arial 14
- $this->SetFont('Arial','',14);
- //Couleur de fond
- $this->SetFillColor(200,220,255);
- //Titre
- $this->Cell(0,6,"$num $lib",0,1,'L',1);
- //Saut de ligne
- $this->Ln(4);
- }
- function TitrePartie($num,$lib)
- {
- //Arial 12
- $this->SetFont('Arial','',12);
- //Couleur de fond
- $this->SetFillColor(255,255,0);
- //Titre
- $this->Cell(0,6,"$num $lib",0,1,'L',1);
- //Saut de ligne
- $this->Ln(4);
- }
- }
- //Instanciation de la classe dérivée
- $pdf=new PDF();
- $pdf->Open();
- $pdf->AliasNbPages();
- $chap = mysql_query ("select * from chapitre where ID_COURS='1';" );
- while ($donneeschap = mysql_fetch_array ($chap))
- {
- $num = entier_romain($donneeschap["NUM_CHAPITRE"]);
- $pdf->SetFont('Arial','U',14);
- $pdf->TitreChapitre($num.') ',$donneeschap['NOM_CHAPITRE']);
- $part = mysql_query ("select * from parties where ID_CHAPITRE='".$donneeschap['ID_CHAPITRE']."' order by ORDRE_PARTIE ASC;" );
- while ($donneespart = mysql_fetch_array ($part))
- {
- $pdf->TitrePartie($donneespart['ORDRE_PARTIE'].') ',$donneespart['TITRE_PARTIE']);
- $para = mysql_query ("select * from paragraphe natural join parties where paragraphe.ID_PARTIE='".$donneespart["ID_PARTIE"]."' order by ORDRE_PARAGRAPHE ASC;" );
- while ($donneespara = mysql_fetch_array($para))
- {
- $pdf->SetFont('Arial','',12);
- if ($donneespara['CONTENU_PARAGRAPHE'] != "" )
- {
- $pdf->MultiCell(0,5,$donneespara['CONTENU_PARAGRAPHE'],0,1);
- $pdf->Ln(4);
- }
- if ($donneespara["ID_IMAGE"] != NULL)
- {
- $img = "select URL from image where ID_IMAGE='".$donneespara["ID_IMAGE"]."';";
- $img = mysql_query($img);
- $img = mysql_fetch_row($img);
- $size = GetImageSize("../".$img[0]);
- $pdf->Image("../".$img[0],50,10,100);
- }
- }
- }
- }
- $titre = mysql_query("select TITRE_COURS from cours where ID_COURS='1';" );
- $titre = mysql_fetch_array($titre);
- $pdf->SetTitle($titre[0]);
- $pdf->SetAuthor('www.e-informatik.com');
- $pdf->Output("../pdf/".$titre[0].".pdf" );
- ?>
|
Est-ce que quelqu'un pourrait me mettre sur la voie car ja patauge depuis quelques heures là.
Merci d'avance. |