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 :

[PDF] Génération PDF avec TCPDF


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Par défaut [PDF] Génération PDF avec TCPDF
    Bonjour à tous,

    je viens de découvrir TCPDF et essaye donc de générer un PDF mais je rencontre un problème lors de l'ouverture de ce fichier après sa création.

    Je développe en PHP en utilisant le framework Zend.

    Code:

    // Librairie TCPDF
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once ('/lib/tcpdf/tcpdf.php');

    // Création d'un nouveau document PDF
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $pdf = new TCPDF('P', 'pt', 'A4', true, 'UTF-8', false);
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    $pdf->SetFont('helvetica','',10);
    $pdf->AddPage();
    $html = "<p>Hello world</p>";
    $pdf->writeHTML($html, true, 0, true, 0);
    $pdf->Output('test.pdf', 'D');

    Une fois le document crée, lors de son ouverture je n'arrive pas à le lire et j'ai le message d'erreur suivant qui s'affiche:
    Adobe Reader n'a pas pu ouvrir fichier.pdf, car le type de fichier n'est pas pris en charge ou le fichier est endommagé (il a été envoyé en tant que pièce jointe et n'a pas été décodé correctement, par exemple)

    Pourriez vous m'indiquer d'où peut provenir le problème?
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Cela peut venir de caractères non désirables situées avant ou après l'execution de ton script (un espace avant l'ouverture de la balise PHP, après etc..)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Par défaut
    Merci ThomasR pour cette réponse rapide mais je ne trouve pas de caractères non désirables (ni espaces avant balises php) mais comme je travaille sur Zend Studio j'ai un "Warning: class TCPDF not found" au niveau de la ligne où je crée mon pdf:
    $pdf = new TCPDF(...);

    Penses-tu que le problème viendrait de là?
    Si oui comment y résoudre car mon require_once fonctionne bien sinon j'aurais un message d'erreurs à ce niveau là?

    Merci d'avance pour ton aide.

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Oui l'erreur vient de là, il fallait le préciser dès le début

    Cela signifie que le chemin /lib/tcpdf/tcpdf.php n'existe pas, existe-t-il réellement un dossier lib/ à la racine de ton serveur web (www/lib ?).

    Je pense que tu voulais écrire lib/tcpdf/tcpdf.php (sans le premier "/" au début).

    Sinon, où se situe le fichier tcpdf.php par rapport à ton fichier qui contient le new TCPDF ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Par défaut
    Oui il existe bien un dossier lib à la racine de mon serveur qui contient le répertoire tcpdf dans lequel est inclus le fichier tcpdf.php.

    Lorsque je teste en écrivant lib/tcpdf/tcpdf.php (sans le premier "/" au début), j'ai un message d'erreur: "failed to open stream: No such file or directory in...".

    Voilà donc:
    -le fichier tcpdf.php se trouve dans: www/lib/tcpdf/tcpdf.php
    -le script qui contient "new TCPDF()" est sendPDF.phtml qui se situe dans: www/mon_projet/application/views/scripts/test/sendPDF.phtml

    et le require que je fais dans mon script sendPDF.phtml est:
    require_once('../../lib/tcpdf/tcpdf.php');

  6. #6
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Ton require n'est pas bon, tu cherches un dossier lib/ dans le dossiers views/.

    Utilises ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('../../../../../lib/tcpdf/tcpdf.php');
    ou ceci (si ton include_path est correct) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('/lib/tcpdf/tcpdf.php');

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 152
    Par défaut
    Merci, mais avec le chemin:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('../../../../../lib/tcpdf/tcpdf.php');


    ça ne fonctionne toujours pas et m'indique la même erreur que précédemment:

    Warning: require_once('../../../../../lib/tcpdf/tcpdf.php'); [function.require-once]: failed to open stream: No such file or directory in /var/www/mon_projet/application/views/scripts/test/sendpdf.phtml on line 5
    En revanche je n'ai pas ce message d'erreurs quand je fais:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('../../lib/tcpdf/tcpdf.php');

    Je ne comprends pas?

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

Discussions similaires

  1. [PDF] Génération PDF avec TCPDF
    Par bza88 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 17/05/2019, 19h25
  2. Génération automatique de PDF avec Win2PDF
    Par cdelefil dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 03/10/2007, 11h01
  3. [FPDF] génération de pdf avec Fpdf sous firefox
    Par discogarden dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 08/06/2006, 10h50
  4. [FPDF] Génération de fichiers PDF avec PHP
    Par deY! dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 10/04/2006, 17h06
  5. [FPDF] génération d'attestation en PDF avec PHP
    Par moabomotal dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/03/2006, 13h50

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