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 :

[FPDF] FPDF et PHPExcel


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut [FPDF] FPDF et PHPExcel
    Bonjour à tous,
    Je viens vers vous pour un problème de transformation d'un fichier excel (.xls) en pdf ! Vous trouverez joint plus bas mon script, il me permet de créer des contrats de location en format excel via un modèle lui aussi en excel. Pour cette partie ça fonctionne, je souhaite sur le même page transformer le contrat en PDF afin que le client ne puisse pas modifier le contrat.

    J'utilise PHPExcel 1.7.8, j'ai bien trouver dans le dossier Writer de quoi faire les PDF, mais à quoi correspond pdf.php ? Il doit être complété par une librairie ?
    J'ai lu aussi que FPDF était intégrer dedans, je ne l'ai pas trouver (core, dompdf,...)

    Script :
    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
     
    <?php
    /** Ajoutons les classes PHPExcel à l'include_path **/
    ini_set('include_path', ini_get('include_path').';../Classes/');
    /** PHPExcel */
    include 'PHPExcel.php';
     
    // Créer un nouvel objet PHPExcel avec comme modèle location.xls
    $objPHPExcel = new PHPExcel();
    $objet = new PHPExcel_Reader_Excel5();
    $objPHPExcel = $objet->load('location.xls');
     
    // Selection de la feuille puis écriture
    $objPHPExcel->getSheet(0);
    $objPHPExcel->getSheetByName('Expression de besoin')->SetCellValue('B15', '16/01/2013');
     
    // Enregistrer le tout dans un document .xls
    $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
    $objWriter->save('Test12.xls');
    ?>
    Comment puis-je transformer mon fichier excel de sortie en l'occurence Test12.xls en Test12.pdf ?
    Merci d'avance et merci d'avoir lu
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

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

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Et ceci ne fonctionne pas ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $objWriter = new PHPExcel_Writer_PDF($objPHPExcel);
    $objWriter->save('Test12.xls');

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonsoir nan ça ne fonctionne pas, j'ai déja fait comme cela pourtant !
    Est un problème avec Easyphp ? Pourtant FPDF marche avec, j'ai déjà utiliser...

    Voici l'erreur :

    Fatal error: Uncaught exception 'Exception' with message 'PDF Rendering library has not been defined.' in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Classes\PHPExcel\Writer\PDF.php:49 Stack trace: #0 C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Tests\test2.php(44): PHPExcel_Writer_PDF->__construct(Object(PHPExcel)) #1 {main} thrown in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\Classes\PHPExcel\Writer\PDF.php on line 49
    Voici un extrait du fichier pdf.php la dernière ligne est la L49.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public function __construct(PHPExcel $phpExcel) {
     
    		$pdfLibraryName = PHPExcel_Settings::getPdfRendererName();
    		if (is_null($pdfLibraryName)) {
    			throw new Exception("PDF Rendering library has not been defined.");
    Ca pourrait être un appel de page manquant ?
    Merci d'avance

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai tester sur mon serveur web cette fois-ci c'est exactement la même erreur, donc ce n'est pas EasyPhp qui est en cause !

    MaitrePylos, j'ai lu vôtre tutorial sur PHPExcel, auriez vous un script complet qui marche chez vous ? Histoire que je m'adapte.

    Bonne journée

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour FloW76 et MaitrePylos

    Je tente de faire la même chose mais pas pour des locations !

    Le principe reste le même : partir d'un fichier modèle vide et y ajouter des informations puis l'enregistrer dans un autre dossier.

    pour ce qui est de l'enregistrement excel aucun souci mais j'ai la même erreur que FloW76 à l'enregistrement en pdf.
    Pourtant j'ai bien suivit le tuto de MaitrePylos qui au passage est très bien fait.

    Avez vous trouvé une solution ?

    Merci
    Nico68

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 72
    Points : 49
    Points
    49
    Par défaut
    moi, aussi enregistrement pdf ne fonctionne pas je crois que c'est la nouvel version qui poser problème mais je ne vois pas comment faux faire j'ai le même problème

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Le message d erreur est clair:

    PDF Rendering library has not been defined.
    Donc il faut renseigner la librarie qui va s occuper de faire le rendu PDF. PHPExcel n'est pas devin!

    Cela se fait avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PHPExcel_Settings::setPdfRenderer()
    Si on jete un petit coup d oeil ici :
    https://github.com/PHPOffice/PHPExce...ttings.php#L49

    On peut donc generer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        const PDF_RENDERER_TCPDF		= 'tcPDF';
        const PDF_RENDERER_DOMPDF		= 'DomPDF';
        const PDF_RENDERER_MPDF 		= 'mPDF';
    Donc, il est possible d'utiliser TCPDF qui est une libraire assez populaire.

    Cela devrait être possible avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $cheminTCPDF = '../TCPDF_PATH';
    PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_TCPDF, $cheminTCPDF);
    PS: il faudrait tester si FPDF fonctionne tout de même avec l option PDF_RENDERER_TCPDF... on peut rêver.
    Un petit si la réponse convient. Merci.

  8. #8
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 72
    Points : 49
    Points
    49
    Par défaut
    oui je pence que c'est çà mais j'ai l'erreur suivante:
    Fatal error: Class 'PHPExcel_Writer_PDF_tcPDF' not found in /public_html/PHPExcel/Writer/PDF.php on line 64
    avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $cheminTCPDF = './PHPExcel/Writer/PDF/tcPDF.php';
    PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_TCPDF, $cheminTCPDF);
    //ou
    $cheminTCPDF = '../TCPDF_PATH';
    PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_TCPDF, $cheminTCPDF);
    après mois je c'est pas si je les mis au bonne endroit juste après mes includes

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    C'est le repertoire de la librairie TCPDF que tu dois renseigner; pas le fichier du renderer de PHPExcel!


    Donc si tu as mis la librairie dans un repertoire "TCPDF"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cheminTCPDF = 'TCPDF/lib'; // dans ce dossier, il s'y trouve un fichier /tcpdf.php
    if(!is_dir($cheminTCPDF) || !file_exists($cheminTCPDF . '/tcpdf.php')){
    echo "Le repertoire de TCPDF est mauvais; ou la librarie ne s'y trouve pas!";
    exit();
    }
    PHPExcel_Settings::setPdfRenderer(PHPExcel_Settings::PDF_RENDERER_TCPDF, $cheminTCPDF);
    Pour info, la librarie TCPDF se trouve ici : http://sourceforge.net/projects/tcpdf/files/
    Un petit si la réponse convient. Merci.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 72
    Points : 49
    Points
    49
    Par défaut
    merci RapotOR,
    j'ai télécharger la librairie que tu a mie en lien car mon fichier ne devait pas être bon mais la il me renvoi un fichier blanc (alors qu'ils doit y avoir plein de truc dessus c'est possible que sa de passe)

Discussions similaires

  1. [FPDF] générer des pages PHP en PDF
    Par saint-pere dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/09/2005, 18h13
  2. [FPDF] Page PHP convertion PDF totale
    Par toflofr dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 23/09/2005, 13h32
  3. [FPDF] Comment mettre une annotation sur un Pdf déjà existant en PHP
    Par shequet dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/09/2005, 11h23
  4. [FPDF] Rechercher dans des pdf
    Par snike dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 09/09/2005, 09h58
  5. [FPDF] Cellule sans bordure en haut et en bas
    Par nebule dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 16/12/2004, 16h07

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