无法使用jsPDF从Html div制作PDF

8
我有以下这段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");
});

在HTML中,我有这样的代码:
<div class = 'wrap_all'>
    <div id = 'wrap_odd'> <div id = ''>....</div> </div>

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

什么都不起作用... 控制台告诉我:

无法读取未定义的属性#wrap_odd

(注:抱歉我的英语)

3个回答

13
当使用'fromHTML'从HTML表单中获取文本以创建JSPDF的PDF时,您应该使用一个elementHandler函数来渲染不需要的<div>。请尝试遵循与示例相同的模式,在JSPDF@GitHub上进行。
您的最终代码应如下所示:
var doc = new jsPDF();
var specialElementHandlers = { 'DIV要呈现出来': function(element, renderer){ return true; } }; $('#pdf_new').click(function(){ var html=$(".wrap_all").html(); doc.fromHTML(html,200,200, { 'width': 500, 'elementHandlers': specialElementHandlers }); doc.save("Test.pdf"); });

1
如果我没有任何不需要的元素怎么办? - snehanshu.js

4

请查看这个页面,它会显示全部内容。

     <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>

0

提醒一句:在可打印元素容器中,要小心元素的位置摆放

看起来 jsPDF 对元素的位置非常敏感。这包括图像和链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接