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

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

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘