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

Symfony PHP Discussion :

Utiliser la bibliothèque TCPDF


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut Utiliser la bibliothèque TCPDF
    salut, je cherche une solution pour ajouter le pibliotheque tcpdf au mon mon projet mai j'arrive pas. svp comment ajouter une lib a un projet symfony?

  2. #2
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Salut,

    Pour ma part j'utilise ce bundle pour le configurer facilement: https://github.com/whiteoctober/WhiteOctoberTCPDFBundle

    Ensuite pour la lib TCPDF en soit, je te conseil d'utiliser une version stable, j'ecrirai un article a ce sujet, en attendant, voici un extrait de mon composer.json pour t'inspirer:

    Code json : 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
    {
        "repositories": [
            {
                "type": "package",
                "package": {
                    "name": "tecnick.com/tcpdf",
                    "version": "6.0.012",
                    "dist": {
                        "url": "http://downloads.sourceforge.net/project/tcpdf/tcpdf_6_0_012.zip",
                        "type": "zip"
                    }
                }
            }
        ],
        "require": {
            "php": ">=5.3.3",
            "symfony/symfony": "2.2.*",
            /* Other packages... */
            "whiteoctober/tcpdf-bundle": "dev-master@dev",
            "tecnick.com/tcpdf": "6.0.*"
        },
    }

    En gros je précise à composer ou aller cherche le package, en l'occurence la version 6.0.012 de TCPDF. Le seul inconvenient c'est qu'il faut surveiller les mises a jour mineur et changer le fichier de config à ce moment la.

    Le principe des packages est expliqué ici: http://getcomposer.org/doc/05-repositories.md#packages

    Bon dèv !

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    salut Soullivaneuh,
    ok j'arrive pas ajouter un lib manuellement au autoloader après le télécharger dans le dossier vendor meme si je l’ajoutée au fichier vendor\composer\autoload_namespaces.php jpp l'utiliser a mes bundle "class not found.."
    alors la solution et l’utilisation Compser, je le télécharger et j'ajoute a son fichier composer.json le package du tcpdf (https://packagist.org/packages/r1pp3rj4ck/tcpdf), ensuite update et voila installig, cloning,.. en fin generation l'upload, ect... le librairy et réellement ajouteé au dossier vendor , MAIS il n'ajoute pas son name-espace au fichier vendor\composer\autoload_namespaces.php!!!! je ne sait pour quoi car normalement il faut l'ajouter automatiquement a l'Upload! maint je suis en train de chercher une solution a modifier la section autoload dans la fichier composer.json
    si ça ne marche pas je vas essayer d'istaller le bundle 'whiteoctober/tcpdf-bundle'
    j'att votre rep

  4. #4
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Salut,

    Je n'ai pas tout compris à ton explication, mais pourquoi te compliquer la vie ? Installe le bundle et tcpdf via composer comme je viens de t'indiquer et ta classe TCPDF sera chargée correctement: $container->get("white_october.tcpdf")

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    je ne veux pas complique la vie mai juste je veux apprendre , ce n'est pas une bonne idée d’être chercher toujours la solution plus facile, si j'ai une solution logique, il faut l'appliquer même si j'aurai des problèmes
    MERCI pour votre solution, je télécharger white_october_tcpdf, il marche comme il faut et voila maintenant j'ai des belles pdf, merci encore.
    mais en génerale pou ajoute une tell librairie (en prend comme exemple tcpdf "https://packagist.org/packages/tcpdf/tcpdf") a mon projet symfony2 reste sans solution pour moi , si tu a une ideé je peux poster mes demarches d'installation ce dernier et l'erreurs que j'avais.
    mes respects.

  6. #6
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Alors en fait il y a trois type de librairies:

    • Les librairies utilisant les namespace (PHP >= 5.3), dans ce cas il n'y a rien a faire a part ajouter le lib dans composer
    • Les librairies utilisant la convention de nommage des classes PEAR, dans ce cas il faut juste ajouter l'emplacement du prefix avec registerPrefixes
    • Les librairies avec les classes moches (a mon gout ! :p), la il faut ruser un peu en faisant une classe de type PEAR qui heritera de ta classe voulue, pour ensuite faire comme le deuxieme point. Exemple ici: http://www.zapoyok.info/2012/01/15/a...e-a-symfony-2/


    Il y a une page complete sur l'ajout de librairie sur le doc officielle, tu devrais y jeter un oeil !

    http://symfony.com/doc/current/compo...ss_loader.html

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    salut,
    1- tout d'abords le bundle white_october_tcpdf, je crois q'il utilise seulement le Class tcpdf.php de la librairie tTCPDF par contre il ignorer les autres class qui n'ont pas une relation avec ce dernier comme la classe tcpdf_barcodes_1d.pdf car j'arrive pas a générer une code a barre, En effet je trouver que le bundle hérite que le class tcpdf.php,
    2- problème d'ajouter un tell lib au symfony2.1, je téléchargé le librairie tcpdf depuis https://packagist.org/packages/r1pp3rj4ck/tcpdf dans le dossier vendor, ensuite je l'ajouteé au composer ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
        "name": "symfony/framework-standard-edition",
        "description": "The \"Symfony Standard Edition\" distribution",
        "autoload": {
            "psr-0": { 
            "": "src/",
            "symfonytcpdf": "src/r1pp3rj4ck/tcpdf"
             }
        },
    alors l'autoload de composer l'ajouté automatiquement le namespace a son fichier vendor\composer\autoload_namespaces.php comme suite:
    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
    <?php
     
    // autoload_namespaces.php generated by Composer
     
    $vendorDir = dirname(dirname(__FILE__));
    $baseDir = dirname($vendorDir);
     
    return array(
        'symfonytcpdf' => array($baseDir . '/src/r1pp3rj4ck/tcpdf'),
        'WhiteOctober\\TCPDFBundle' => array($vendorDir . '/whiteoctober/tcpdf-bundle'),
        'Twig_Extensions_' => array($vendorDir . '/twig/extensions/lib'),
        'Twig_' => array($vendorDir . '/twig/twig/lib'),
        'Symfony\\Bundle\\SwiftmailerBundle' => array($vendorDir . '/symfony/swiftmailer-bundle'),
        'Symfony\\Bundle\\MonologBundle' => array($vendorDir . '/symfony/monolog-bundle'),
        'Symfony\\Bundle\\AsseticBundle' => array($vendorDir . '/symfony/assetic-bundle'),
        'Symfony' => array($vendorDir . '/symfony/symfony/src'),
        'SessionHandlerInterface' => array($vendorDir . '/symfony/symfony/src/Symfony/Component/HttpFoundation/Resources/stubs'),
        'Sensio\\Bundle\\GeneratorBundle' => array($vendorDir . '/sensio/generator-bundle'),
        'Sensio\\Bundle\\FrameworkExtraBundle' => array($vendorDir . '/sensio/framework-extra-bundle'),
        'Sensio\\Bundle\\DistributionBundle' => array($vendorDir . '/sensio/distribution-bundle'),
        'Monolog' => array($vendorDir . '/monolog/monolog/src'),
        'Metadata\\' => array($vendorDir . '/jms/metadata/src'),
        'JMS\\SecurityExtraBundle' => array($vendorDir . '/jms/security-extra-bundle'),
        'JMS\\DiExtraBundle' => array($vendorDir . '/jms/di-extra-bundle'),
        'JMS\\AopBundle' => array($vendorDir . '/jms/aop-bundle'),
        'Doctrine\\ORM' => array($vendorDir . '/doctrine/orm/lib'),
        'Doctrine\\DBAL' => array($vendorDir . '/doctrine/dbal/lib'),
        'Doctrine\\Common' => array($vendorDir . '/doctrine/common/lib'),
        'Doctrine\\Bundle\\DoctrineBundle' => array($vendorDir . '/doctrine/doctrine-bundle'),
        'CG\\' => array($vendorDir . '/jms/cg/src'),
        'Assetic' => array($vendorDir . '/kriswallsmith/assetic/src'),
        '' => array($baseDir . '/src'),
    );
    j'essaye avec plusieurs façon pour l'utiliser dans mon contrôleur (use symfonytcpd\tcpdf;...) mais toujour le même problème class tcpdf not found....

  8. #8
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Tu as cette erreur meme en faisant $pdfObj = $container->get("white_october.tcpdf")->create(); ?

    La classe du service est la suivante : https://github.com/whiteoctober/Whit...Controller.php

    Moi comme ca ca fonctionne, en faisant juste un use TCPDF; ...

    J'ai pas le pc qui faut sur moi, je regarde mon autoload dès que je peux !

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    oui ça fonctionne pour moi aussi avec la création des pdf, mais essayé de générer un code a barre avec ce bundle !!! car la classe TCPDF ne crée pas des code a barre.
    le class tcpdf_barcodes_1d.php c'est le responçable a gnere les code barre, si t remarque il n'existe pas dans le controlleur https://github.com/whiteoctober/Whit...Controller.php par contre il existe dans la librairie ...

    COMMENT générer un code a barre avec ce bundle???

  10. #10
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Je t'avoue ne jamais avoir essaye le code barre...

    Essayes d'ouvrir un ticket ici: https://github.com/whiteoctober/Whit...ues?state=open mais en anglais biensur

  11. #11
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    Bonjour,
    ça date de la version 2.0 mais ça m a déjà dépanner. http://www.petitstrucs.fr/2012/05/aj...ojet-symfony2/
    et celle là aussi
    http://www.kiwwito.com/article/add-t...s-to-symfony-2

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    pour le code a barre je vas modifier le bundle lui mem c pas grave...
    mais pour ce que concerne l'utilisation de l'autoload c'est une autre histoire..
    stephan.78: est ce que vous consulter mon fichier vendor\composer\autoload_namespaces.php en haut?
    je sais pas exactement mais je crois que avec symfony2.1 on ne peut jamis modifier la fuchier app/autoload.php voila le code de app/aotoload.php:
    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
    <?php
     
    use Doctrine\Common\Annotations\AnnotationRegistry;
     
    $loader = require __DIR__.'/../vendor/autoload.php';
    // intl
    if (!function_exists('intl_get_error_code')) {
        require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
     
        $loader->add('', __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs');
    }
     
    AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
     
    return $loader;
    svp Jetez un oeil haut, vous trouver comment je modifier l'autoload du composer...

  13. #13
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Comment ca on ne peut jamais modifier le fichier app/autoload.php ? Biensur que si ! Je l'ai fait pour modifier des parametre de config avec ini_set !

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2011
    Messages : 31
    Points : 30
    Points
    30
    Par défaut
    en cas de composer je crois pas ... Bon en tt cas comment je peut le modfier pour ajouter mon lib?
    j'essaye le démarche du tuto que tu m’envoyer mais rien...

  15. #15
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Composer ne touche pas au fichier autoload.php ...

    Tu veux dire quoi par rien ? Qu'as-tu fais exactement ?

  16. #16
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Soullivaneuh Voir le message
    Composer ne touche pas au fichier autoload.php ...

    Tu veux dire quoi par rien ? Qu'as-tu fais exactement ?
    Je n'arrive pas à installer le bundle avec composer, après une longue attente m'affiche le message suivant, Exception time out

    voici mon composer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        "require": {
            "php": ">=5.3.3",
            "symfony/symfony": "2.2.*",
     		"whiteoctober/tcpdf-bundle": "dev-master"
        },
    avez-vous des idées sur cette erreur SVP?

  17. #17
    Membre régulier
    Homme Profil pro
    Lead Développeur
    Inscrit en
    Novembre 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Lead Développeur
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2011
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    C'est tout simplement ta connexion qui pose probleme, TCPDF est une assez (trop ?) grosse librairie.

    Il faut que tu augment le process-timeout de ton fichier de config pour composer: http://getcomposer.org/doc/04-schema.md#config

  18. #18
    Futur Membre du Club
    Inscrit en
    Juin 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Soullivaneuh Voir le message
    C'est tout simplement ta connexion qui pose probleme, TCPDF est une assez (trop ?) grosse librairie.

    Il faut que tu augment le process-timeout de ton fichier de config pour composer: http://getcomposer.org/doc/04-schema.md#config
    J'ai déjà essayé ça mais sans résultat, bon est ce qu'on peut ajouter TCPDF comme third-party à symfony2 (2.3.0)

  19. #19
    Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Points : 4
    Points
    4
    Par défaut installation simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ php composer.phar require whiteoctober/tcpdf-bundle:dev-master
    puis modifier le AppKernel.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new WhiteOctober\TCPDFBundle\WhiteOctoberTCPDFBundle(),

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/12/2009, 14h50
  2. Utiliser une bibliothèque C++ en java
    Par khayyam90 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 08/02/2007, 14h40
  3. Utilisation de bibliothèques
    Par dingoth dans le forum JSF
    Réponses: 4
    Dernier message: 30/11/2006, 11h05
  4. utiliser une bibliothèque....
    Par miminou dans le forum Bibliothèques
    Réponses: 5
    Dernier message: 18/12/2005, 20h26
  5. Utiliser une bibliothèque statique
    Par djflex68 dans le forum MFC
    Réponses: 6
    Dernier message: 15/08/2005, 19h26

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