从javascript库生成高质量pdf的问题:jspdf和html2canvas

从javascript库生成高质量pdf的问题:jspdf和html2canvas,javascript,pdf-generation,jspdf,html2canvas,Javascript,Pdf Generation,Jspdf,Html2canvas,嗯,我正在开发一个实用工具,可以生成pdf输出。数据从用户处获取,经过一些操作后转换成预定义的格式,然后需要以.pdf格式保存所有css 它完全是一个客户端应用程序 我正在为此使用jsPdf+html2canvas。但我有以下忧虑: 首先也是最重要的是,找不到任何API文档。我仍在使用在各个网站上找到的代码片段 不管怎样,我所取得的产出质量远远超出预期 当我的HTML文档大到足以占据多个页面时,我仍然只得到第一页的pdf。(我想这是因为我缺乏知识,也是因为缺乏文档。) 我看到,有很多类似的问题。

嗯,我正在开发一个实用工具,可以生成pdf输出。数据从用户处获取,经过一些操作后转换成预定义的格式,然后需要以.pdf格式保存所有css

它完全是一个客户端应用程序

我正在为此使用
jsPdf+html2canvas
。但我有以下忧虑:

  • 首先也是最重要的是,找不到任何API文档。我仍在使用在各个网站上找到的代码片段
  • 不管怎样,我所取得的产出质量远远超出预期
  • 当我的HTML文档大到足以占据多个页面时,我仍然只得到第一页的pdf。(我想这是因为我缺乏知识,也是因为缺乏文档。)
  • 我看到,有很多类似的问题。我尝试了几乎所有的方法,很少有方法不起作用,很少触发一些错误,我仍然被卡住了

    因此,我的问题是:

  • 是我的选择,适合制作高质量的pdf(至少80%-90%在屏幕上可见)。如果有人能告诉我jspdf和html2canvas的高质量输出,我将非常感激

  • 请提供有关这些LIB的正确文档指南。我目前拥有的是github中随
    zip
    文件提供的
    doc
    文件夹,这显然不足以充分利用它

  • 如果这种方法不可行,请直接使用更好的产品。质量是我们的最高要求,性能可以协商。为付费图书馆做好准备。但更喜欢客户端工具(因为实际上不需要服务器端实现)

  • 我发布了上述问题,但为了以防万一,我的代码:

    function previewCtrlFn($scope, Database){
            var vm = this;
            vm.resume = Database.resume;
            console.log(angular.toJson(vm.resume));
            vm.pdf = createPDF;
    
            var form = $('#aa'),
                 width = form.width(),
                 a4  =[ 615.28,  841.89];  
    
            function createPDF(){
             getCanvas().then(function(canvas){
              var 
              img = canvas.toDataURL("image/png"),
              doc = new jsPDF({
                      unit:'px', 
                      format:'a4'
                    });     
            doc.addImage(img, 'JPEG', 5, 5);
            doc.save('resume.pdf');
            form.width(width);
             });
            }
    
            // create canvas object
            function getCanvas(){
             form.width((a4[0]*1.33333) -80).css('max-width','none');
             return html2canvas(form,{
                 imageTimeout:1000,
                 removeContainer:true
                }); 
            }
        }
    

    我真的需要一些快速的帮助。

    你可以使用这段代码,你的pdf大小和质量将会提高

    html2canvas(body,{
        onrendered:function(canvas){
            var img=canvas.toDataURL("image/png");
            console.dir(canvas);
            var pdf=new jsPDF("p", "mm", "a4");
            var width = pdf.internal.pageSize.width;    
            var height = pdf.internal.pageSize.height;
            pdf.addImage(canvas, 'JPEG', 0, 0,width,height);
            pdf.save('test11.pdf');
        }
    })