yangwenxin_1 2019-04-18 09:58 采纳率: 0%
浏览 2383

运用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)
          }
      })



  }

        求各位大神帮助!!!
  • 写回答

2条回答 默认 最新

  • 勤奋猿 2021-12-10 11:04
    关注

    解决了吗?楼主,我也遇到这个问题了。

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?