【问题标题】:How do you concatenate two or images in pdf using Html2Canvas & JsPDF?如何使用 Html2Canvas 和 JsPDF 连接 pdf 中的两个或图像?
【发布时间】:2017-04-06 03:34:06
【问题描述】:

我正试图围绕 HTML2Canvas 的 API 进行思考,但文档非常有限。情况是我将 2 个或更多 div(他们的内容)放入一个 PDF 中,其中每个 div 代表一个不同的页面。听起来很容易吧?并不真地。我已经尝试了一切来完成这项工作,但是 JS 的异步特性使得这种方式变得比它必须的更难。

这就是我所拥有的

     html2canvas($("#monthly_agg_report_container"), {

                onrendered: function(canvas)
                {
                    var doc = new jsPDF('landscape', 'pt','a2');
                    var imgData = canvas.toDataURL("image/png");

                    doc.addImage(imgData,'PNG',0,0,canvas.width*1.33,canvas.height*1.33);

                    doc.save('report.pdf')  ;
                }
                }).then(function(){

//another html2canvas doesnt work. PDF comes with a empty page. Because `doc` is out of scope 
                alert('done')

                        })

【问题讨论】:

    标签: javascript jspdf html2canvas


    【解决方案1】:

    这是对我有用的代码:

    function generatePDF() {
    
    
        var doc = new jsPDF('landscape', 'pt','a2');
        console.log(doc);
    
       html2canvas($("#monthly_agg_report_container"), {
    
                onrendered: function(canvas)
                {
    
                    var imgData = canvas.toDataURL("image/png");
    
    
                    doc.addImage(imgData,'PNG',0,0,canvas.width*1.33,canvas.height*1.33);
    
                //  doc.save('report.pdf')  ;
                }
                }).then(function(){
    
    
                            html2canvas($("#descriptor_stats_container"), {
    
                                onrendered: function(canvas)
                                {
                                    console.log('2nd doc '+doc); 
                                    doc.addPage();
                                    var imgData = canvas.toDataURL("image/png", 1.0);
    
    
                                    doc.addImage(imgData,'PNG',0,0,canvas.width*1.33,canvas.height*1.33);
    
                                    //doc.save('report.pdf')    ;
                                }
                                }).then(function(){
                                    alert('done')
    
                                        html2canvas($("#alerts_stats_container"), {
    
                                        onrendered: function(canvas)
                                        {
                                            console.log('2nd doc '+doc); 
                                            doc.addPage();
                                            var imgData = canvas.toDataURL("image/png");
    
    
                                            doc.addImage(imgData,'PNG',0,0,canvas.width*1.33,canvas.height*1.33);
    
                                            doc.save('report.pdf')  ;
                                        }
                                        })
    
                                })
                        })
    
    
    
    
    
    }
    

    【讨论】:

    • 嗨,我也有同样的问题,我也在纠结。还问了一个问题,但没有成功。不幸的是,JsPDF 文档并不多。你能在这方面帮助我吗?
    • 我几乎发布了对我有用的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2016-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多