Une class pour créer des PDF ??

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Une class pour créer des PDF ??

    Bonsoir à tous !

    Voilà j'aimerais savoir si Joomla! a prévus dans son framework un outil pour créer des PDF.
    En faisant des recherches je suis tombé sur JDocumentPDF(), mais apparemment elle n'existe plus en 2.5...
    à t'elle été remplacée ??

    Sinon j'ai l'habitude d'utiliser HTML2PDF. Je l'ai intégrée dans mon composant, pour ce faire j'ai définis l'affichage du PDF en tant que "vue". Tout se passe bien jusqu'au moment de l'utilisation de "output()", au lieu de générer mon PDF j'ai tout un tas de symboles sur une page blanche... Je ne sais pas si certains d'entre vous on déjà été dans ce cas de figure et si oui, comment le problème a t'il été reglé ??

    En tout cas si quelqu’un à une solution pour générer du PDF depuis on composant merci de me le faire savoir.
    Dernière édition par Soundboy39 à 13/08/2013, 22h07 Raison: correction

  • #2
    Re : Une class pour créer des PDF ??

    Bonjour

    La génération d'un PDF; la classe dont tu parles, était présente dans Joomla 1.5 mais il faut bien avouer que le rendu n'était vraiment pas terrible. Nativement, à ma connaissance, Joomla 2.5 et supérieur a abandonné cette possibilité.

    Je ne connais pas HTML2PDF; je ne saurais te répondre quant au problème que tu mentionnes.

    Bonne journée.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be
    Logiciel gratuit de scan antivirus : https://github.com/cavo789/aesecure_quickscan (plus de 45.000 virus détectés, 700.000 fichiers sur liste blanche)​

    Commentaire


    • #3
      Re : Une class pour créer des PDF ??

      Merci pour ta réponse,

      J'ai tenté à nouveau avec HTML2PDF, le problème persiste, même en forçant l'affichage de mon PDF depuis ma fonction "display()" avant le chargement du fichier "tmpl". Ce qui est bizarre c'est que j'ai réussi à intégrer cette classe dans une application Jumi, mais ce n'est certe pas vraiment le même context...

      Voici le code placé à la fin de ma class :
      Code PHP:

      //parent::display($tpl);
              
      JRequest::setVar('tmpl','component');
              
              
      //Charge HTML2PDF
              
      try
              {
                  
      $content_html '<table><tr><td>hello!!</td></tr></table>';
                  require_once(
      JPATH_BASE.'\components\com_mycomp\helpers\pdf\html2pdf.php');
                  
      $html2pdf = new HTML2PDF('P''A4''fr');
                  
      $html2pdf->pdf->SetDisplayMode('fullpage');
                  
      $html2pdf->writeHTML($content_html);

                  
      $html2pdf->Output('file.pdf');
              }
              catch(
      HTML2PDF_exception $e){
                  die(
      $e);
              } 
      Normalement je devrais récupérer un beau document PDF dans le navigateur mais à la place j'ai ceci :


      Autrement avez d'autres solution pour générer des PDF ?? Des solutions qui seraient compatibles avec Joomla ?
      Merci d'avance et bonne journée.

      Commentaire


      • #4
        Re : Une class pour créer des PDF ??

        Bonjour,

        Le problème provient du output brut, sans encapsulation dans un Doctype.

        Voir PhocaPDF et ses plugins content et system pour avoir une idée de la bonne méthode à employer pour générer les doctypes à la volée.

        PhocaPDF utilise TCPDF comme générateur, mais l'adaptation à d'autres générateurs dont HTML2PDF doit être possible.
        Dernière édition par jisse03 à 14/08/2013, 07h56
        Pas de demande de support par MP.
        S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

        Commentaire


        • #5
          Re : Une class pour créer des PDF ??

          Bonjour,

          Effectivement, @jisse03 à raison, il te faut définir ton header avec un "Content-type" lié au résultat que tu souhaite afficher.

          Bon courage.
          ----
          Je t'ai aidé? Remercie moi, rien de plus

          Commentaire


          • #6
            Re : Une class pour créer des PDF ??

            Envoyé par dev_ate Voir le message
            il te faut définir ton header avec un "Content-type"
            Nan y a pas moyen... j'ai ajouter "header('Content-type: application/pdf');" avant la fonction "output()", et aussi après... j'ai réessayé à la fois depuis le fichier "tmpl" et depuis le fichier "view.html.php" mais le problème persiste.

            Quelqu'un a t'il une autre idée ?? Sinon y a une autre libraire que je peu testée, je vais voir ça ce soir, je vous retiens au courant.

            Commentaire


            • #7
              Re : Une class pour créer des PDF ??

              Envoyé par Soundboy39 Voir le message
              Nan y a pas moyen... j'ai ajouter "header('Content-type: application/pdf');" avant la fonction "output()", et aussi après... j'ai réessayé à la fois depuis le fichier "tmpl" et depuis le fichier "view.html.php" mais le problème persiste.

              Quelqu'un a t'il une autre idée ?? Sinon y a une autre libraire que je peu testée, je vais voir ça ce soir, je vous retiens au courant.
              Ce n'est pas aussi simple que d erajouter un header

              Regardes comment PhocaPDF résoud le problème.
              Pas de demande de support par MP.
              S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

              Commentaire


              • #8
                Re : Une class pour créer des PDF ??

                Attention, dans ton contexte tu es dans une vue HTML: view.html.php, donc ton JDocument est de type HTML...
                ----
                Je t'ai aidé? Remercie moi, rien de plus

                Commentaire


                • #9
                  Re : Une class pour créer des PDF ??

                  Bonjour à tous !

                  J'ai changé de librairie, j'ai opté pour FPDF qui m'a été conseillée sur le forum international, ce qui n'a absolument pas fait bouger le problème d'un poil.

                  J'ai aussi installer phocaPDF qui part ailleurs fonctionne très bien avec le composant com_content.
                  J'ai essayé d'étudier les fichiers du composant et du plugin... j'ai pas appris grand chose...
                  si ce n'est qu’apparemment il utilise TCPDF, qui est la class de base utilisée par HTML2PDF.
                  Il y a aussi le fait que le plugin ajoute et modifie des fichiers au niveau du composant com_content.

                  Sinon j'ai quand même un peu avancé ('fin je pense...), j'ai renommé mon fichier "view.html.php" en "view.pdf.php" et j'ai changé les attributs "_mime" (mis en "application/pdf") et "_type" (mis en "pdf") de mon objet JDocument.

                  Cette fois Joomla! me balance une erreur 500 : "Unable to load renderer class', j'ai fait quelque recherche et apparemment ce serait causé par une erreur de template, hors j'ai bien pris soin de forcer "tmpl" en "component".

                  J'ai réessayé avec la librairie HTML2PDF ça fait la même chose...

                  Qu'est ce que c'est que cette "Renderer class" ?? Comment je peux résoudre ce problème ??
                  Merci d'avance et bon 15 aout.

                  Commentaire


                  • #10
                    Re : Une class pour créer des PDF ??

                    Regardes dans com_phocapdf/helpers/phocapdfrender.php, il y a la classe PhocaPDFRender qui étend la classe JDocument avec des hooks pour com_content, pour restaurant menu et Virtuemart...

                    La technique est de charger JDispatcher, importer le plugin PDF correspondant au composant, mettre un trigger sur onBeforeDisplayPDF, activer le trigger onBeforeDisplayPDFton_composant et de retourner le pdf->output.
                    Pas de demande de support par MP.
                    S'il n'y a pas de solution, c'est qu'il n'y a pas de problème (Devise Shadok)

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X