Partage
  • Partager sur Facebook
  • Partager sur Twitter

librairie html2pdf

Sujet résolu
    11 juin 2013 à 12:57:17

    Bonjour tout le monde !

    je veux intégrer la librairie html2pdf dans mon projet Symfony2 mais j'arrive pas à le faire ! quelqu'un peut m'aider SVP !!

    j'ai mis toutes les sources de la librairie dans ce repertoire : 

    vendor/html2pdf/lib/Html2Pdf/src
    et puis j'ai créée une classe(vendor/html2pdf/lib/Html2Pdf/Html2Pdf_Html2Pdf.php) qui va me permettre de charger cette librairie

    <?php
    
    require_once __DIR__.'/src/html2pdf.class.php';
    
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /**
     * Description of Html2Pdf_Html2Pdf
     *
     * @author SonyVaio
     */
    class Html2Pdf_Html2Pdf extends HTML2PDF{
        //put your code here
    }
    
    ?>


    Mais pour ajouter cette librairie à l'autoloader je trouve des difficultés 

    C'est vraiment très urgent !

    Merci d'avance 

    -
    Edité par ghaziabdelouahhab 11 juin 2013 à 13:03:16

    • Partager sur Facebook
    • Partager sur Twitter
      11 juin 2013 à 17:40:31

      Salut !

      Je suppose que tu es passé par la FAQ, mais j'ai l'impression que tu n'as pas dû faire très attention : à moins que tu n'aies Symfony 2.0, ton code n'est pas celui qu'il faut. Je ne peux que t'enjoindre à aller (re-)lire l'entrée dans la FAQ concernant l'intégration de librairies externes dans Symfony 2, et faire bien attention aux indications quand à la version pour laquelle sont les instructions que tu lis.   Ensuite, quelles difficultés rencontres-tu ? On va t'aider, mais pas faire le boulot à ta place pour que tu puisses copier-coller sans apprendre ;)

      -
      Edité par Ymox 22 décembre 2017 à 0:05:46

      • Partager sur Facebook
      • Partager sur Twitter
        11 juin 2013 à 18:14:06

        Non je ne veux pas du copier coller ! au contraire je veux bien apprendre puisque je suis débutant en symfony :)

        Je viens de voir tes explications concernant l'inclusion des librairies externes !

        La première méthode ne va pas fonctionner pour mon cas parce-que j'utilise la version 2.2.1 pour symfony (et html2pdf 4.03)

        j'ai vu dans quelques tutos autres méthodes en utilisant le composer ! mai ça demande le composer.phar dont je n'ai aucune idée comment l'utiliser !

        Je demande pas un solution pour mon sujet mais juste un peu d'aide pour que je puisse continuer mon travail !

        De toutes façons je te remercie Ymox pour l’intérêt que tu porte à mon sujet :)

        • Partager sur Facebook
        • Partager sur Twitter
          12 juin 2013 à 8:36:23

          Les informations pour Symfony 2.1.x et ultérieures restent valable, la seule chose est que si tu n'utilises pas Composer, il faudra quand-même aller modifier ton fichier app/autoloader.php — à moins que Symfony se base de toute manière sur les fichiers composer.json, winzou, pourrais-tu confirmer/infirmer quand tu passeras par là, s'il te plaît ?   Il te faut déjà décider d'un namespace pour ta librairie, je te propose Spipu\Html2PDF, et c'est ce namespace qu'il faudra mettre dans autoloader.php, selon ce qui est expliqué dans le second point de ce message. C'est indiqué pour Symfony 2.1.x, mais je doute que ce soit très différent ce qui devrait être fait pour des versions plus récentes.   Ensuite, je te recommande vivement de créer un service de Html2Pdf.

          -
          Edité par Ymox 12 juin 2013 à 11:01:12

          • Partager sur Facebook
          • Partager sur Twitter
            12 juin 2013 à 10:39:02

            Bonjour Ymox ! j’espère que vous allez bien .

            Voila j'ai trouvé une solution pour appeler la bibliothèque dans autoload.php en ajoutant les lignes ( 3 et de 10 jusqu'à 13)

            <?php
            
            use Symfony\Component\ClassLoader\UniversalClassLoader;
            use Doctrine\Common\Annotations\AnnotationRegistry;
            
             require __DIR__.'/../vendor/autoload.php';                                
            
            
            
            $loader = new UniversalClassLoader();
            $loader->registerPrefixes(array(
                'Html2Pdf_' => __DIR__.'/../vendor/html2pdf/lib',
            ));
            
            
            
            // intl
            if (!function_exists('intl_get_error_code')) {
                require_once __DIR__.'/../vendor/symfony/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php';
            }
            
            AnnotationRegistry::registerLoader(array($loader, 'loadClass'));
            
            return $loader;

            Mais quand je lance la fonction par laquelle je fais un petit test pour générer un pdf à partir du HTML ça donne ces deux erreurs

            <small>[2/2]</small> FileLoaderLoadException: Cannot import resource "C:\wamp\www\GED\src\Doc\GestionBundle/Controller" from "C:/wamp/www/GED/app/config\routing.yml".

            <small>[1/2]</small> AnnotationException: [Semantical Error] The annotation "@Sensio\Bundle\FrameworkExtraBundle\Configuration\Method" in method Doc\GestionBundle\Controller\DefaultController::testPDFAction() does not exist, or could not be auto-loaded.

            voila la fonction :

            <?php
            
            namespace Doc\GestionBundle\Controller;
            
            use Symfony\Component\HttpFoundation\Request;
            use Symfony\Bundle\FrameworkBundle\Controller\Controller;
            use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
            use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
            use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
            use \PHPExcel;
            use \PHPExcel_IOFactory;
            use \PHPExcel_Shared_OLE;
            use \Html2Pdf_Html2Pdf;
            
            
            
            
            
            
            
            /**
             * Default controller.
             *
             * @Route("/Acceuil")
             */
            
            class DefaultController extends Controller
            {
               
                /**
                 * 
                 *
                 * @Route("/", name="Acceuil")
                 * @Method("GET")
                 * @Template()
                 */
                
                
                public function testPDFAction(){
                    
                    $html = "<page>
                                <h1>Exemple d'utilisation</h1>
                            </page>";
                    
                    $html2pdf = new \Html2Pdf_Html2Pdf('P', 'A4', 'fr');
                    $html2pdf->pdf->SetDisplayMode('real');
                    $html2pdf->writeHTML($html);
                    $html2pdf->Output('test.pdf');
            
                }
            }


            Et je m'excuse pour le dérangement !  c'est juste parce-que je trouve pas quelqu'un qui peut m'aider dans mon entourage !

            Je te remercie

            • Partager sur Facebook
            • Partager sur Twitter
              12 juin 2013 à 11:07:39

              Je me demande si le sous-tiret dans le nom de ta classe ne pose pas problème. Essaie plutôt ça ce qui est mentionné dans la FAQ

              -
              Edité par Ymox 30 juin 2013 à 11:10:57

              • Partager sur Facebook
              • Partager sur Twitter
                12 juin 2013 à 12:09:09

                Parfait :D Merci Ymox pour ton aide c'est vraiment gentil de votre part !

                Alors là je peux continuer mon travail :D 

                • Partager sur Facebook
                • Partager sur Twitter
                  12 juin 2013 à 12:16:04

                  Redis-moi si ça fonctionne, et mets le sujet en résolu si c'est bon ;)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juin 2013 à 12:55:19

                    Oui Ymox ça fonctionne bien ! nickel ;)

                    Merci Beaucoup 

                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 juin 2013 à 11:47:18

                      Bonjour

                      merci pour toute c'est explication, mais j'ai un erreur

                      "You have requested a non-existent service "html2pdf"

                      pouvez vous expliquer comme ajouter un services pour html2pdf

                      SVP

                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 juin 2013 à 12:41:29

                        cimo_sama a écrit:

                        Bonjour   merci pour toute c'est explication, mais j'ai un erreur   "You have requested a non-existent service "html2pdf"   pouvez vous expliquer comme ajouter un services pour html2pdf   SVP

                        1. Tu aurais dû lire attentivement le sujet épinglé à propos de Symfony 2 (la réponse y est prête à l'emploi…)
                        2. Tu aurais dû créer ton propre sujet
                        3. Celui-ci est résolu, donc encore moins de monde viendra t'aider.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        librairie html2pdf

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown