Angular6 如何将有角度的页面导出为具有多个页面的pdf

Angular6 如何将有角度的页面导出为具有多个页面的pdf,angular6,pdf-generation,jspdf,Angular6,Pdf Generation,Jspdf,我有一个很长的angular表单,我需要将其转换为pdf格式。因为它是一个非常长的表单,我必须将它分成小块,并以pdf格式显示在多个页面中。我怎样才能做到这一点。我还需要为每个页面添加页眉和页脚 我正在使用jsPDF和dom对pfd转换的包进行映像 以下是我为pdf转换编写的代码: exportPdf(){ var doc = new jsPDF('potrait','px','a4'); let imageData= new Image(); imageData.src

我有一个很长的angular表单,我需要将其转换为pdf格式。因为它是一个非常长的表单,我必须将它分成小块,并以pdf格式显示在多个页面中。我怎样才能做到这一点。我还需要为每个页面添加页眉和页脚

我正在使用jsPDF和dom对pfd转换的包进行映像

以下是我为pdf转换编写的代码:

exportPdf(){
    var doc = new jsPDF('potrait','px','a4');
    let imageData= new Image();
    imageData.src='../../assets/images/testimg.png';
    var filename="application";
    var options={};
    var img;
    var newImage;
    var node = document.getElementById('formContent');
    var numRowsToCut=3;
    var imagePieces=[];

      domtoimage.toPng(node, { }).then(function(dataUrl) 
      {
        img = new Image();
        img.src = dataUrl;
        newImage = img.src;
        img.onload = function(){

            var pdfWidth = img.width;
            console.log("image width "+pdfWidth);
            var pdfHeight = (img.height)/3;

            var width = doc.internal.pageSize.getWidth();
            console.log("width "+width);
            var height = doc.internal.pageSize.getHeight();

            for(var y = 0; y < numRowsToCut; ++y) {
              var canvas = document.createElement('canvas');
              var context = canvas.getContext('2d');
              context.drawImage(newImage, 0, y *pdfHeight, pdfWidth,pdfHeight, 0, 0,pdfWidth,pdfHeight);
              imagePieces.push(canvas.toDataURL());
          }            

            var docDefinition = {
            content: [{
                image: imagePieces[0],
                width: 500,
                pagebreak:'after'
            },
            {
              image: imagePieces[1],
              width: 500,
              pagebreak:'after'
          },
          {
            image: imagePieces[0],
            width: 500,
            pagebreak:'after'
        }],
            pageBreakBefore: function(currentNode) {
              return currentNode.style && currentNode.style.indexOf('myDivClass') > -1;
            }
          };
          pdfMake.createPdf(docDefinition).download(filename);
        };


      })
      .catch(function(error) {

        // Error Handling
        console.log(error);


      });

  }
exportPdf(){
var doc=新的jsPDF('potrait','px','a4');
让imageData=新图像();
imageData.src='../../assets/images/testimg.png';
var filename=“应用程序”;
var选项={};
var-img;
var-newImage;
var节点=document.getElementById('formContent');
var numRowsToCut=3;
var imagePieces=[];
toPng(节点,{}).then(函数(dataUrl)
{
img=新图像();
img.src=数据URL;
newImage=img.src;
img.onload=函数(){
var pdfWidth=img.宽度;
console.log(“图像宽度”+pdfWidth);
var pdfHeight=(img.高度)/3;
var width=doc.internal.pageSize.getWidth();
控制台。原木(“宽度”+宽度);
var height=doc.internal.pageSize.getHeight();
对于(变量y=0;y-1;
}
};
创建PDF(docDefinition).下载(文件名);
};
})
.catch(函数(错误){
//错误处理
console.log(错误);
});
}

任何帮助都将不胜感激

我从教程中得到了解决方案。在这里发布,因为它可能会帮助其他人