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 :

PHPExcel et PDF


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut PHPExcel et PDF
    Bonjour,
    Je viens chercher votre aide car je rencontre des soucis avec PHPExcel.
    Je n'arrive pas à enregistrer un fichier xlsx au format pdf.
    J'ai pourtant essayer de suivre la doc.
    https://github.com/PHPOffice/PHPExce...and-Writing.md
    Mais j'ai toujours la même erreur :
    Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Unable to load PDF Rendering library' in C:\xampp\htdocs\autoentrepreneur\public_html\lib\Classes\PHPExcel\Writer\PDF\tcPDF.php:35 Stack trace: #0 C:\xampp\htdocs\autoentrepreneur\public_html\lib\Classes\PHPExcel\Autoloader.php(82): require() #1 [internal function]: PHPExcel_Autoloader::Load('PHPExcel_Writer...') #2 C:\xampp\htdocs\autoentrepreneur\public_html\lib\Classes\PHPExcel\Writer\PDF.php(70): spl_autoload_call('PHPExcel_Writer...') #3 C:\xampp\htdocs\autoentrepreneur\public_html\generationdevis.php(156): PHPExcel_Writer_PDF->__construct(Object(PHPExcel)) #4 {main} thrown in C:\xampp\htdocs\autoentrepreneur\public_html\lib\Classes\PHPExcel\Writer\PDF\tcPDF.php on line 35
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
    $rendererLibrary = 'tcpdf';
    $rendererLibraryPath = 'lib/Classes/Writer/PDF' . $rendererLibrary;
     
    $getPdfRendererClassFile = 'lib/tcpdf/tcpdf.php';
    PHPExcel_Settings::getPdfRendererPath($getPdfRendererClassFile);
    PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
    /*Instanciation d'un nouvel objet phpwriter en fonction du fichier excel ouvert*/
    $writer = new PHPExcel_Writer_PDF($excel);
    //sauvegarde et fermeture du fichier avec le nom du client, la date et l'heure
    $writer->save('./devis/' . $donneesclt['NomCli'] . '.' . $donneesclt['PrenomCli'] . '/' . $annee . '-' . $mois . '-' . $jour . '--' . $heure . 'h' . $minute . '' . $donneesclt['NomCli'] . '' . $donneesclt['PrenomCli'] . '.pdf');
    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Salut,

    Est-ce que tu as installé la librairie que tu essayes d'utiliser ? (cf. http://www.tcpdf.org/installation.php)

    Est-ce que les exemples de TCPDF fonctionnent ?

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Tout d'abord merci pour ton aide.
    Oui j'ai installer la librairie et les exemples fonctionne.
    J'ai trouvé un exemple de PHPExcel qui doit créer un fichier PDF mais celui-ci ne fonctionne pas.

    Voila le code de l'exemple :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
    /**
     * PHPExcel
     *
     * Copyright (C) 2006 - 2014 PHPExcel
     *
     * This library is free software; you can redistribute it and/or
     * modify it under the terms of the GNU Lesser General Public
     * License as published by the Free Software Foundation; either
     * version 2.1 of the License, or (at your option) any later version.
     *
     * This library is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     * Lesser General Public License for more details.
     *
     * You should have received a copy of the GNU Lesser General Public
     * License along with this library; if not, write to the Free Software
     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
     *
     * @category   PHPExcel
     * @package    PHPExcel
     * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
     * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL
     * @version    1.8.0, 2014-03-02
     */
     
    /** Error reporting */
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    date_default_timezone_set('Europe/London');
     
    define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');
     
    date_default_timezone_set('Europe/London');
     
    include "05featuredemo.inc.php";
     
    /** PHPExcel_IOFactory */
    require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
     
     
    //	Change these values to select the Rendering library that you wish to use
    //		and its directory location on your server
    //$rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
    //$rendererName = PHPExcel_Settings::PDF_RENDERER_MPDF;
    $rendererName = PHPExcel_Settings::PDF_RENDERER_DOMPDF;
    //$rendererLibrary = 'tcPDF5.9';
    //$rendererLibrary = 'mPDF5.4';
    $rendererLibrary = 'domPDF0.6.0beta3';
    $rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary;
     
     
    echo date('H:i:s') , " Hide grid lines" , EOL;
    $objPHPExcel->getActiveSheet()->setShowGridLines(false);
     
    echo date('H:i:s') , " Set orientation to landscape" , EOL;
    $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
     
     
    echo date('H:i:s') , " Write to PDF format using {$rendererName}" , EOL;
     
    if (!PHPExcel_Settings::setPdfRenderer(
    		$rendererName,
    		$rendererLibraryPath
    	)) {
    	die(
    		'NOTICE: Please set the $rendererName and $rendererLibraryPath values' .
    		EOL .
    		'at the top of this script as appropriate for your directory structure'
    	);
    }
     
     
    $callStartTime = microtime(true);
     
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
    $objWriter->setSheetIndex(0);
    $objWriter->save(str_replace('.php', '_'.$rendererName.'.pdf', __FILE__));
    $callEndTime = microtime(true);
    $callTime = $callEndTime - $callStartTime;
    echo date('H:i:s') , " File written to " , str_replace('.php', '_'.$rendererName.'.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
    echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
    // Echo memory usage
    echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;
     
     
    // Echo memory peak usage
    echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;
     
    // Echo done
    echo date('H:i:s') , " Done writing files" , EOL;
    echo 'File has been created in ' , getcwd() , EOL;
    J'ai le message
    NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure
    Donc les renderername et rendererlibrarypath ne sont pas renseigner correctement.

    Si j'arrive à faire fonctionner l"exemple je devrais pouvoir l'adapter à mon cas.
    Est-ce que quelqu'un sait ce que je doit mettre dans ces variable?

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Donc problème de chemin vers les dossiers/fichiers qui sont utilisés.
    Est-ce que ça marche en modifiant la ligne 51 comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rendererLibraryPath = dirname(__FILE__). '/../Classes/PHPExcel/IOFactory.php';
    (à adapter en fonction de ton arborescence de fichiers bien entendu)

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Oui c'est cela.
    En faite le $rendererLibrary correspond au nom du dossier qui contient la librairie tcpdf et le $rendererLibraryPath correspond au chemin vers ce fichier.
    J'ai donc mis le code suivant dans le cas de l'exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php';
    $rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
    $rendererLibrary = 'tcpdf';
    $rendererLibraryPath = dirname(__FILE__) . '/../../' . $rendererLibrary;
    Et la les chemins sont bon.

    J'ai maintenant bien un fichier pdf qui est générer mais par contre le rendu n'est pas satisfaisant du tout.
    La mise en page n'est pas bonne et de plus les bordures de chaque cases de mon fichier excel d'origine sont affichés.

    J'ai essayer d'arranger cela en m'inspirant des exemples avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $writer->SetCreator('PDF_CREATOR');
    $writer->SetAuthor('Benoit Dupin');
    $writer->SetTitle('Devis');
    $writer->SetSubject('Devis');
    $writer->SetKeywords('Devis, PDF');
    $writer->setMargins(0, 0);
    $writer->setPrintHeader(false);
    $writer->setPrintFooter(false);
    $writer->SetAutoPageBreak(false, 0);
    $writer->SetFont('', '', '', '', 'false');
    Mais pour chaque méthode appeler j'ai l'erreur :
    Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'PHPExcel_Writer_PDF_tcPDF' does not have a method 'SetCreator' in C:\xampp\htdocs\autoentrepreneur\public_html\lib\Classes\PHPExcel\Writer\PDF.php on line 87
    Il ne trouve pas les méthode. Je ne sait pas pourquoi.
    Si quelqu'un à une idée elle est la bienvenue.

    Merci d'avance

  6. #6
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Est-ce ça pourrait venir du fait que tu essayes d'utiliser des méthodes de TCPDF sur un objet qui est de type PHP_Excel ?

    Est-ce que tu peux poster ton code stp ?

  7. #7
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Ah très bonne idée. Mais je pensais que cela serait gérer étant donné que l'on fait une conversion avec tcPDF.
    Je te poste mon code ce soir dès que je rentre chez moi.

  8. #8
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Voila mon code :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    $objet = new PHPExcel_Reader_Excel2007();
                            /*Ouverture du fichier existant*/
                            $excel = $objet->load('./base/devisbase.xlsx');
                            /*Ouverture de la feuille de calcul*/
                            $sheet = $excel->getSheet(0);
                            /*Récupération de la date et de l'heure*/
                            $jour = date('d');
                            $mois = date('m');
                            $annee = date('Y');
                            $heure = date('H');
                            $minute = date('i');
                            /*Traduction du mois en lettre*/
                            switch($mois) {
                                case 01:
                                    $moislettre = 'janvier';
                                break;
     
                                case 02:
                                    $moislettre = 'fevrier';
                                break;
     
                                case 03:
                                    $moislettre = 'mars';
                                break;
     
                                case 04:
                                    $moislettre = 'avril';
                                break;
     
                                case 05:
                                    $moislettre = 'mai';
                                break;
     
                                case 06:
                                    $moislettre = 'juin';
                                break;
     
                                case 07:
                                    $moislettre = 'juillet';
                                break;
     
                                case 08:
                                    $moislettre = 'aout';
                                break;
     
                                case 09:
                                    $moislettre = 'septembre';
                                break;
     
                                case 10:
                                    $moislettre = 'octobre';
                                break;
     
                                case 11:
                                    $moislettre = 'novembre';
                                break;
     
                                case 12:
                                    $moislettre = 'decembre';
                                break;
                            }
                            /*Ajout des valeur dans les cellules*/
                            $sheet->setCellValue('E9', '' . $donneesclt['NomCli'] . ' ' . $donneesclt['PrenomCli'] . '');
                            $sheet->setCellValue('E10', '' . $donneesclt['RueCli'] . '');
                            $sheet->setCellValue('E11', '' . $donneesclt['CPCli'] . ' ' . $donneesclt['VilleCli'] . '');
                            $sheet->setCellValue('A14', 'Fait le '. $jour . ' ' . $moislettre . ' ' . $annee . '');
                            $nbprod = $_POST['nbprod'];
                            $init = 21;
                            $nbligne = 1;
                            /*La boucle s'execute tant que l'on à selectionné de produits*/
                            while ($nbligne <= $nbprod) {
                                $sheet->setCellValue('A' . $init . '', '' . $_POST['desi' . $nbligne . ''] . '');
                                $sheet->setCellValue('D' . $init . '', '' . $_POST['qtt' . $nbligne . ''] . '');
                                $sheet->setCellValue('E' . $init . '', '' . $_POST['pu' . $nbligne . ''] . '');
                                $nbligne++;
                                $init = $init+2;
                            }
                            /*Si une réduction à été selectionné alors on l'insert dans le devis*/
                            if (isset($_POST['reduc']) && !empty($_POST['reduc'])) {
                                $sheet->setCellValue('E40', 'Reduction');
                                $sheet->setCellValue('F40', '' . $_POST['reduc'] . '');
                            }
                            /*Recupération du numéro de facture à insérer*/
                            $num = $cnx_bdd->query('SELECT * FROM `autoentrepreneur`.`devisfactures`;') or die (print_r($cnx_bdd->errorinfo()));
                            $donneesnum = $num->fetch();
                            /*Insertion du numéro de facture*/
                            $sheet->setCellValue('A16', 'N° devis : D' . $annee . '' . $donneesnum['NumDevis'] . '');
                            /*Incrémentation du numéro de facture*/
                            $newnum = $donneesnum['NumDevis'];
                            $newnum++;
                            /*Mise à jour de la base de données*/
                            $cnx_bdd->query('UPDATE `autoentrepreneur`.`devisfactures` SET NumDevis=' . $newnum . ';');
                            $rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
                            $rendererLibrary = 'tcpdf';
     
                            $rendererLibraryPath = dirname(__FILE__) . '/lib/' . $rendererLibrary;
                            //PHPExcel_Settings::getPdfRendererPath($getPdfRendererClassFile);
                            //$rendererLibraryPath = 'Classes/Writer/PDF/' . $rendererLibrary;
                            PHPExcel_Settings::setPdfRenderer($rendererName, $rendererLibraryPath);
                            /*Instanciation d'un nouvel objet phpwriter en fonction du fichier excel ouvert*/
                            $writer = PHPExcel_IOFactory::createWriter($excel, 'PDF');
                            //$writer = new PHPExcel_Writer_PDF($excel);
                            $writer->SetCreator(PDF_CREATOR);
                            $writer->SetAuthor('Benoit Dupin');
                            $writer->SetTitle('Devis');
                            $writer->SetSubject('Devis');
                            $writer->SetKeywords('Devis, PDF');
                            $writer->setMargins(0, 0);
                            $writer->setPrintHeader(false);
                            $writer->setPrintFooter(false);
                            $writer->SetAutoPageBreak(false, 0);
                            $writer->SetFont('', '', '', '', 'false');
                            //$writer = new PHPExcel_Writer_PDF($excel);
                            //sauvegarde et fermeture du fichier avec le nom du client, la date et l'heure
                            $writer->save('./devis/' . $donneesclt['NomCli'] . '.' . $donneesclt['PrenomCli'] . '/' . $annee . '-' . $mois . '-' . $jour . '--' . $heure . 'h' . $minute . '' . $donneesclt['NomCli'] . '' . $donneesclt['PrenomCli'] . '.pdf');
    Merci pour ton aide.

  9. #9
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Alors, après quelques recherches je suis tombé là-dessus : http://www.devshed.com/c/a/php/php-e...and-pdf-files/
    Donc pour ton problème de bordures qui apparaissent sur le PDF, si j'ai bien compris, il faut modifier ton objet PHPExcel avant la génération du PDF.

    Quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sheet = $excel->getSheet(0)->setShowGridlines(false);
    Essaye déjà ça pour voir si ça fonctionne avec les bordures.
    Et si c'est le cas, essaye d'adapter cette solution (modifier l'objet PHPExcel avant de générer le PDF) sur les autres propriétés que tu essayes d'appliquer au PDF (pour celles qui existent aussi dans Excel).

  10. #10
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Le setShowGridlines fonctionne et le rendu est déjà mieux même si il y a encor des retouches à faire.
    Il faut donc passer tout les paramètre au fichiers Excel avant de le convertir en PDF.
    Merci beaucoup pour ton aide.
    Je vais essayer de peaufiner mon PDF et je te tien au courant si j'ai réussi ou si j'ai des problèmes.
    Merci encore

  11. #11
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Salut,

    Alors j'ai presque réussi à faire ce que je veut mais pas tout à fait.
    Je souhaite avoir des bordures sur certaine cellule pour faire un cadre à la manière d'un devis avec la désignation, la quantité ect...
    Ce cadre est déjà créé dans mon fichier excel de base mais la conversion en pdf n'est pas terrible, il ne prend pas en compte la taille de la bordure et ne prend pas en compte forcément toute les bordures.
    J'ai essayer d'arranger sa avec PHPExcel mais je n'y parvient pas.
    Pour faire un test j'ai tapé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $sheet->getStyle('E11')->getBorders()->applyFromArray(
                                    array(
                                        'borders'=>array(
                                            'top'=>array(
                                                'style'=>PHPExcel_Style_Border::BORDER_MEDIUM,
                                                'color'=>array(
                                                    'rgb'=>'808080'
                                                )
                                            )
                                        )
                                    )
                                    );
    L'effet attendu est d'avoir une bordure sur le haut de la cellule E11 mais il n'y a absolument rien qui apparait.
    Peut-être que setShowGridlines(false) empêche l'affichage mais alors comment faire pour afficher uniquement ce que je veut.

    Merci de votre aide.

  12. #12
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Par défaut
    Salut,

    Oui c'est normal que les bordures ne s'affichent pas, puisqu'on a rajouté le setShowGridlines(false) justement pour qu'elles n'apparaissent pas^^

    Pour ton problème je vois deux possibilités :
    - soit tu supprime le setShowGridlines(false), tu mets en forme ton objet PHPExcel tout comme il faut et ensuite tu génères le PDF (mais d'après ce que tu disais, la mise en forme n'est pas respectée lors de la génération)
    - soit tu essayes de comprendre de quelle classe est ton $writer (ligne 102) pour réussir à lui appliquer des méthodes de mise en forme. Par exemple, au lieu d'utiliser les méthodes qui généraient des erreurs, tu utilises quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $writer->getProperties()->setCreator("Benoit Dupin");
    Si ça fonctionne, mets en forme ton $writer et ça devrait être bon^^

  13. #13
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2013
    Messages : 34
    Par défaut
    Ici le problème est le moteur de rendu tcPDF.
    Avec DomPDF tout est niquel.
    En tout cas merci vraiment pour ton aide.

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

Discussions similaires

  1. PHPExcel enregistrement fichier corrompu pdf xlsx
    Par bjo393 dans le forum Langage
    Réponses: 1
    Dernier message: 06/05/2013, 10h25
  2. PHPExcel problème PDF
    Par bjo393 dans le forum Langage
    Réponses: 3
    Dernier message: 03/05/2013, 14h41
  3. [PHP Excel] Problème PDF
    Par philodido dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 30/11/2010, 16h47
  4. [PHP Excel] Génération de PDF lente et incomplète
    Par Florent2 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 06/04/2010, 16h00
  5. [PHP Excel] Conversion vers PDF
    Par basket dans le forum Bibliothèques et frameworks
    Réponses: 11
    Dernier message: 12/02/2010, 11h23

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