web-dev-qa-db-fra.com

Ne peut pas faire PDF from Html div par jsPDF

J'ai ce code js: 

var doc = new jsPDF();

$('#pdf_new').click(function(){
    var html=$(".wrap_all").html();
    doc.fromHTML(html,200,200, {
        'width': 500,
    });
    doc.save("Test.pdf");
});

En HTML, j'ai un code comme celui-ci: 

<div class = 'wrap_all'>
    <div id = 'wrap_odd'> <div id = ''>....</div> </div>

    <div id = 'wrap_even'> <div id = ''>....</div> </div>
</div>

Rien ne fonctionne ... La console me revient:

Impossible de lire la propriété #wrap_odd de non définie "

(P.S désolé pour mon anglais)

7
Pavel Lankmiler

Lorsque vous utilisez 'fromHTML' pour extraire du texte d'un fichier HTML à partir du PDF que vous créez à l'aide de JSPDF, vous devez disposer d'un elementHandler fonction pour rendre les indésirables <div>

Essayez de suivre le même modèle que dans l'exemple exemple dans JSPDF @ GitHub .

votre code de fin devrait ressembler à ceci:

 var doc = new jsPDF (); 
 
 var specialElementHandlers = {
 ' DIV à restituer ': fonction (élément, renderer) {
 renvoie true; 
} 
}; 
 
 
 $ ('# pdf_new'). click (fonction () {
 var html = $ (". wrap_all"). html (); 
 doc.fromHTML (html, 200,200, {
 'width': 500, 
 'elementHandlers': specialElementHandlers 
)) 
 doc.save ("Test.pdf"); 
}); 
13
Vijayamaharaj

Cochez cette .. tout ce contenu d'affichage

     <head>
        <script src="https://code.jquery.com/jquery-git.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/0.9.0rc1/jspdf.min.js"></script>
<script type="text/javascript">
        $(window).on('load', function () {
            var doc = new jsPDF();
            var specialElementHandlers = {
                '#editor': function (element, renderer) {
                    return true;
                }
            };
            $('#pdfview').click(function () {
                doc.fromHTML($('#pdfdiv').html(), 15, 15, {
                    'width': 100,
                    'elementHandlers': specialElementHandlers
                });
                doc.save('file.pdf');
            });
        });
    </script>
    </head>
     <div id="pdfdiv">
                <h3 style="color:green;">WWW.SANWEBCORNER.COM</h3>
                <img src="404.png">
                <p>A newspaper acts an important medium to control corruption and scams. The chief topics of general interest in newspaper includes politics, social issues, sports, economy, movies, and share market.

    Newspaper is a mode of mass communication. It is very helpful in creating social awareness. Newspaper raises voices against social issues such as child labor, dowry system, etc. They urge the common people to act and behave in a rational manner.

    We get the information of the forthcoming movies and television shows through a newspaper. It also contains a list of multiplexes with time-schedule for the movies.

    A wide coverage of information is obtained at low cost though newspaper. It also influences the habit of thinking in men. It has also seen that illiterate adults are taking up education to read newspaper.

    There are such dailies that trade on such dirty tricks for survival. Being politically left or right, they misrepresent strikes and lockouts. Events like bank robbery and train accident or similar untoward events are distorted or exaggerated. They deliberately make their news sensational because it appeals to the less educated and less cultured more directly.

    The dignity and reputation of a newspaper rests on the degree of their fidelity to truth and fearless reporting. It is our cheapest and most powerful weapon in the last analysis.</p>
            </div>
            <div id="editor"></div>
            <button id="pdfview">Download PDF</button>
4
user6628729

Juste un mot d'avertissement: faites attention au placement des éléments dans le conteneur d'éléments imprimables !

Il semble que jsPDF soit très sensible à la justesse des éléments. Cela comprend des images et des liens.

0
Richard Nalezynski