Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je créé un système d'envoi de messages, mises à jour dans une base de données en me basant sur le Zend Framework 1.11.11, en utilisant le pattern MVC. Tout fonctionne, le moteur, les requêtes etc. On m'a demandé d'ajouter un module de création de PDF (pour pouvoir sortir à la demande la liste des tickets actifs par exemple). Pour cela, j'ai donc inclus la librairie fpdf, j'ai créé un contrôleur pdfcontroller, et une classe mypdf pour "driver" tout ça.
Sauf que je me retrouve à l'appel de la page avec un message d'erreur qui est le suivant :
Notice: Undefined property: MyPdf::$titre in /www/htdocs/InfoNaut/application/models/MyPdf.php on line 11 FPDF error: Some data has already been output, can't send PDF file
voici l'extrait du code de l'index.php, pour préciser la localisation de la librairie
defined('LIBRARY_PATH') || define('LIBRARY_PATH', realpath(dirname(__FILE__) . '/../library'));
Le PdfController :
<?php //appel des modeles necessaires require_once (APPLICATION_PATH."/models/Tavurnav.php"); require_once(APPLICATION_PATH."/models/Tavurnavlocal.php"); require_once(APPLICATION_PATH."/models/Tavirade.php"); require_once(APPLICATION_PATH."/models/Tavinav.php"); //appel librairie fpdf require_once (LIBRARY_PATH."/fpdf17/fpdf.php"); class PdfController extends Zend_Controller_Action { public function init() { } public function indexAction () { $this->view->message = "contrôleur par défaut"; } public function afficheavurnavAction() { //TODO }
La classe MyPdf, localisée avec les modèles :
<?php require_once (LIBRARY_PATH."/fpdf17/fpdf.php"); class MyPdf extends FPDF { public function Header() { $this->SetFont('Times','B',18); $this->Cell(80); $this->Cell(30,10,$this->titre,0,0,'C'); $this->Ln(); $this->Cell(30,10,"Mon sous titre",1,0,'C'); $this->Ln(); } }
Et pour finir, la page phtml d'appel du pdf (pour le moment, juste un pdf vide avec un titre et un sous-titre)
require_once(APPLICATION_PATH."/models/MyPdf.php"); $pdf = new MyPdf(); $pdf->AddPage(); $pdf->titre = "Titre test"; $pdf->Output();
Le problème se situe visiblement dans la classe MyPdf sur le $this->titre. En effet, lorsque je rentre un titre en dur $this->Cell(30,10,$"un titre",0,0,'C'); par exemple, ça fonctionne bien.
Merci pour l'aide apportée
Dernière modification par roswellenshort (18-04-2013 16:05:13)
Hors ligne
Erreur simple. Le "$pdf->AddPage();" avant le "$pdf->titre = "Titre test";" c'est mal. Dans le bon ordre, c'est mieux
Hors ligne