Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Html2Canvas提供半填充的单页,而不是完整的内容_Javascript_Angularjs_Jspdf_Html2canvas - Fatal编程技术网

Javascript Html2Canvas提供半填充的单页,而不是完整的内容

Javascript Html2Canvas提供半填充的单页,而不是完整的内容,javascript,angularjs,jspdf,html2canvas,Javascript,Angularjs,Jspdf,Html2canvas,我有这个任务,我使用angular、jspdf、html2canvas、canvas2image来显示一个模式,用户可以在其中选择希望导出为PDF的项目。在相同的模式中,当用户选择一个项目时,首先隐藏下面的所有内容,我将该特定div置于可见状态;呈现为用户的预览 莫代尔的Css是: .pdf-modal-spec{ overflow-x:hidden; overflow-y:auto; max-height:900px; } 模式可以滚动,当用户不断选择项目时,要

我有这个任务,我使用angular、jspdf、html2canvas、canvas2image来显示一个模式,用户可以在其中选择希望导出为PDF的项目。在相同的模式中,当用户选择一个项目时,首先隐藏下面的所有内容,我将该特定div置于可见状态;呈现为用户的预览

莫代尔的Css是:

 .pdf-modal-spec{
    overflow-x:hidden;
    overflow-y:auto;
    max-height:900px;
  }
模式可以滚动,当用户不断选择项目时,要导出为pdf的分区高度将从900px开始增加。当我将完全呈现的页面导出为pdf时,我从模式呈现的内容中只得到半填充的单页面;它应该跨越到2-3页,虽然我得到2-3页,但空白。我不知道我错在哪里

我的导出为pdf程序:

vm.a4 = [595.28, 841.89];
var form = $(".pdfTemplates");
$('.pdfTemplates').scrollTop(form[0].scrollHeight);
createPDF(form);

function getCanvas(form) {
    form.width((vm.a4[0] * 1.33333) - 50).css('max-width', 'none');
    return html2canvas(form, {
        imageTimeout: 2000,
        background: '#FFFFFF',
        removeContainer: true
    });
}

function createPDF(form) {
  var cache_width = form.width();          
  //create pdf
  getCanvas(form).then(function (canvas) {
      var img = canvas.toDataURL("image/png");
      var doc = new jsPDF({
          unit: 'pt',
          format: 'a4',
      });

      // pageHeight= doc.internal.pageSize.height;
      var image = new Image();
      image = Canvas2Image.convertToPNG(canvas);
      doc.addImage(img, 'PNG', 15, 15);
      var corte = (vm.a4[1] * 1.33333) - 30;
      var croppingYPosition = corte;
      var count = (image.height) / corte;
      for (var i = 1; i < count; i++) {
          doc.addPage();
          var sourceX = 0;
          var sourceY = croppingYPosition;
          var sourceWidth = image.width;
          var sourceHeight = corte;
          var destWidth = sourceWidth;
          var destHeight = sourceHeight;
          var destX = 0;
          var destY = 0;
          var canvas1 = canvas;
          canvas1.setAttribute('height', corte * i);
          canvas1.setAttribute('width', destWidth);
          var ctx = canvas1.getContext("2d");
          ctx.drawImage(image, sourceX,
                               sourceY,
                               sourceWidth,
                               sourceHeight,
                               destX,
                               destY,
                               destWidth,
                               destHeight);
          var image2 = new Image();
          image2 = Canvas2Image.convertToPNG(canvas1);
          var image2Data = image2.src;
          doc.addImage(image2Data, 'PNG', 15, 15);
          croppingYPosition += destHeight;
      }
      doc.save('firstPDF.pdf');
      document.getElementsByClassName('pdfTemplates')[0].style.width = '100%';
  });          
}        

更准确地说,我想将溢出转换为PDF。即使我将div的overflow设置为visible或auto-html2canvas,也只将div的可见部分导出为PDF,而不导出其余部分。我做了一些研发工作,但我找不到任何能满足我期望的东西。请帮忙…你解决过这个问题吗?我处理的是同样的事情,要打印的pdf中的内容只显示表的一半。