yangwenxin_1
yangwenxin_1
2019-04-18 09:58

运用html2canvas 生成图片 然后 生成PDF chrome页面中图片在PDF中无法显示

问题:
运用html2canvas 生成图片 然后 生成PDF chrome页面中图片在PDF中无法显示
工具:html2canvas.js、jsPdf.debug.js

代码:
var downPdf = document.getElementById("renderPdf");//获取按钮元素

  downPdf.onclick = function() {

      html2canvas(document.body, {
          onrendered:function(canvas) {
          setTimeout(function(){
              var contentWidth = canvas.width;
              var contentHeight = canvas.height;

              //一页pdf显示html页面生成的canvas高度;
              var pageHeight = contentWidth / 595.28 * 841.89;
              //未生成pdf的html页面高度
              var leftHeight = contentHeight;
              //pdf页面偏移
              var position = 0;
              //a4纸的尺寸[595.28,841.89],html页面生成的canvas在pdf中图片的宽高
              var imgWidth = 555.28;
              var imgHeight = 555.28/contentWidth * contentHeight;

              var pageData = canvas.toDataURL('image/jpeg', 1.0);
             var triggerDownload = $("#downPng").attr("href", pageData).attr("download", "order-1111111111.jpg");
              var pdf = new jsPDF('', 'pt', 'a4');
              //有两个高度需要区分,一个是html页面的实际高度,和生成pdf的页面高度(841.89)
              //当内容未超过pdf一页显示的范围,无需分页
              if (leftHeight < pageHeight) {
                  pdf.addImage(pageData, 'JPEG', 20, 0, imgWidth, imgHeight );
              } else {
                  while(leftHeight > 0) {
                      pdf.addImage(pageData, 'JPEG', 20, position, imgWidth, imgHeight)
                      leftHeight -= pageHeight;
                      position -= 841.89;
                      //避免添加空白页
                      if(leftHeight > 0) {
                          pdf.addPage();
                      }
                  }
              }

              pdf.save('content.pdf');
               },5000)
          }
      })



  }

        求各位大神帮助!!!
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

相关推荐