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

Zend Framework PHP Discussion :

phpToPdf(FPDF) et ZF


Sujet :

Zend Framework PHP

  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut phpToPdf(FPDF) et ZF
    Bonjour,

    j'essaye de générer des PDF, avec la librairie phpToPdf.

    J'ai mis les fichiers dans /library .

    je crée un nouveau controler et dans l'IndexAction je fais ceci

    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
     
    class PdfController extends Zend_Controller_Action
    {
    	/**
    	 * The default action - show the home page
    	 */
    	public function indexAction ()
    	{
    		$pdf = new phpToPDF();
    		$pdf->AddPage();
    		$pdf->SetFont('Arial', 'B', 16);
    		$pdf->Cell(40, 10, 'Hello World !');
    		$pdf->Output();
    	}
    }
    Cela génère bien un fichier contenant un certain poids, malheureusement mon lecteur Pdf, me dit 'impossible d'ouvrir le fichier'.

    Quelqu'un à déjà réussi à utiliser cette librairie avec ZF.

    merci de votre aide.

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Tu as désactivé l'affichage de la vue ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_helper->viewRenderer->setNoRender();

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Oui, cela ne fonctionnais toujours pas.

    je viens à l'instant de rajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->_helper->resetHelpers();
    Et cela marche nickel

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 84
    Par défaut
    Je débute avec ZF et MVC et j'ai du mal à voir comment intégrer l'utilisation d'une librairie externe. Donc deux questions suite à ce post...

    - Où saisir le code ci-dessous ? Dans le init() du Controller ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $this->_helper->resetHelpers();	
    $this->_helper->viewRenderer->setNoRender();
    - Comment donner à la librairie des données provenant de la BDD ? Il faut créer une classe Pdf() dans /model ?

    J'ai encore des difficultés à comprendre où est la place de telle ou telle action/fonction dans l'arbo.

    Merci pour vos précisions.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 84
    Par défaut
    Je me réponds à moi-même pour la première question.
    > ces deux lignes de code doivent être dans la vue.

    Pour la deuxième, ça attendra que le retour du dîner

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,
    Seul cette ligne est suffisante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->_helper->resetHelpers();
    pour les librairies externes, tu as un répertoire pour les installer, c'est /library.
    A partir du moment ou on respecte les conventions standard de ZF, cela ne pose aucun souci.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Ma technique me semble mieux respecter le MVC.

    1) J'ai étendu Zend_Controller_Action pour utiliser le contextSwitch :
    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
        public function init()
        {
            // contextSwitch
            $contextSwitch = $this->_helper->getHelper('contextSwitch');
            $contextSwitch->setContext('pdf', array('suffix' => 'pdf',
                                                    'headers' => array('Content-Type' => 'application/pdf')));
            $contextSwitch->setContext('csv', array('suffix' => 'csv',
                                                    'headers' => array('Content-Type' => 'text/csv; Charset=ISO-8859-15')));
            $contextSwitch->setContext('txt', array('suffix' => 'txt',
                                                    'headers' => array('Content-Type' => 'text/plain; Charset=ISO-8859-15')));
            $contextSwitch->setContext('png', array('suffix' => 'png',
                                                    'headers' => array('Content-Type' => 'image/png')));
     
            $this->_contextSwitch = $contextSwitch;
        }
    2) Dans le controller, j'utilise le contextSwitch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        public function init()
        {
            parent::init();
     
            // contextSwitch
            $this->_contextSwitch->addActionContext('display', array('pdf'))
                                 ->addActionContext('graph', array('png'))
                                 ->initContext();
        }
    3) Mon action est classique : elle va chercher les données et les affecte à la vue.
    4) Ma vue (dans l'exemple display.pdf.tpl) génère le pdf. Dans ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $pdf = new phpToPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial', 'B', 16);
    $pdf->Cell(40, 10, 'Hello World !');
    $pdf->Output();
    C'est très simple, très rapide à coder, et le controller ne s'occupe pas de la vue, ce qui respecte mieux le MVC.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FPDF] fpdf.php et phpToPDF.php;
    Par medabj dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 25/03/2013, 11h22
  2. [PDF] Alternative à FPDF, phpToPDF, EZPDF.. ?
    Par Nicolas_k dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/02/2012, 10h34
  3. [phpToPDF] Encodage ou autre phptoPDF/FPDF
    Par enrico83600 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 27/03/2010, 20h52
  4. [FPDF] Affichage de tableaux avec fpdf et phptopdf
    Par yosraisi dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/02/2008, 09h54
  5. [PDF] Choix entre FPDF, TCPDF et phpToPDF ?
    Par Blossom dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 24/11/2007, 18h53

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