Partage
  • Partager sur Facebook
  • Partager sur Twitter

Générer PDF depuis HTML

Ouvrir le fichier créé dans le navigateur

    24 septembre 2018 à 11:25:00

    Bonjour à toutes et tous,

    Je planche sur un petit problème, j'ai trouvé le code ci-dessous qui permet de générer un PDF depuis le HTML, quand on clic sur le bouton "Generate PDF", le pdf est créé et ce télécharge sur l'ordinateur...

    Je voudrais savoir comment faire pour que le pdf créé s'ouvre dans le navigateur et je souhaiterai également savoir comment nommer le fichier avec la date du jour au lieux de "sample-file.pdf" qui est défini avec doc.save apparemment.

    Le HTML

    <div id="content">
        <h3>Sample h3 tag</h3>
        <p>Sample pararaph</p>
    </div>
    <div id="editor"></div>
    <button id="cmd">Generate PDF</button>
    
    <script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"></script>

    Le Javascript :

    var doc = new jsPDF();
    var specialElementHandlers = {
        '#editor': function (element, renderer) {
            return true;
        }
    };
    
    $('#cmd').click(function () {   
        doc.fromHTML($('#content').html(), 15, 15, {
            'width': 170,
                'elementHandlers': specialElementHandlers
        });
        doc.save('sample-file.pdf');
    });


    Merci d'avance pour vos réponses :)

    • Partager sur Facebook
    • Partager sur Twitter
      24 septembre 2018 à 13:45:51

      Bonjour.

      Pour récupérer la date du jour en js tu peux utiliser des bibliothèques comme Moment.js, et après tu te renseignes sur la doc. Pour le pdf, tu veux l'afficher dans ta page ou sur une page séparée ? Parce que pour la page séparée, c'est le navigateur qui s'en occupe automatiquement il me semble.

      • Partager sur Facebook
      • Partager sur Twitter
        24 septembre 2018 à 13:56:03

        Bonjour et merci pour ta réponse,

        Je suis débutant en programmation, j'ai du mal avec les bibliothèques, par exemple je n'arrive pas à utiliser composer sur mon serveur cloud, bref, je cherche un moyen simple "si possible" de nommer le fichier qui sera généré.

        Je souhaite que le fichier généré s'ouvre dans le navigateur directement car le code que j'ai cité ne marche pas sur smatrphone, on peut pas enregistrer ... d'où mon intérêt à ouvrir le pdf dans un nouvel onglet, cela permet depuis un smartphone de l'enregistrer, envoyer par mail en PJ etc ...

        J'ai fait quelques recherches, le problème est vraiment l'ouverture du fichier généré dans un nouvel onglet, j'ai trouvé ce lien :

        https://stackoverflow.com/questions/26221041/jspdf-create-pdf-from-html-and-open-in-new-window

        Il parle dedans de la méthode pour ouvrir dans un nouvel onglet, avec mon code modifié comme ceci avec "doc.output('dataurlnewwindow');" au lieu de "doc.save('sample-file.pdf');" ... la fenêtre s'ouvre mais le pdf est pas généré ... une idée ? Je n'en dors plus la nuit lol

        var doc = new jsPDF();
        var specialElementHandlers = {
            '#editor': function (element, renderer) {
                return true;
            }
        };
         
        $('#cmd').click(function () {  
            doc.fromHTML($('#content').html(), 15, 15, {
                'width': 170,
                    'elementHandlers': specialElementHandlers
            });
            doc.output('dataurlnewwindow');
            //doc.save('sample-file.pdf');
        });



        Merci d'avance pour vos réponses :)

        -
        Edité par Artof 25 septembre 2018 à 5:56:57

        • Partager sur Facebook
        • Partager sur Twitter
          25 septembre 2018 à 20:07:12

          Personne pour m'aider svp ?
          • Partager sur Facebook
          • Partager sur Twitter

          Générer PDF depuis HTML

          × 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