pdfMake и jspdf оба дают чистый PDF в Angular - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь загрузить данные содержимого таблицы в формате PDF, который я пробовал, используя два модуля - pdfMake и jspdf.Для jspdf, когда таблица мала, я могу захватить PDF, т.е. это не пустой (белый) PDF.Тем не менее, у меня есть много данных в таблице, которые должны быть записаны.Где я ошибаюсь?

Ссылка для pdfMake, которую я упомянул, -

pdfmake генерирует пустой pdf

код -

[1] jspdf

capture() {
  {
    console.log("Inside capture")
    var data = document.getElementById('entireTable');
    console.log("found the element id")
    html2canvas(data).then(canvas => {
      // Few necessary setting options  
      data.appendChild(canvas);
      var imgWidth = 308;
      var pageHeight = 2295;
      var imgHeight = canvas.height * imgWidth / canvas.width;
      var heightLeft = imgHeight;

      console.log("Height width set");
      const contentDataURL = canvas.toDataURL('image/png')
      // let pdf = new jspdf('p', 'mm', 'a1'); // A4 size page of PDF  
      const pdf = new jspdf({
        orientation: 'landscape',
      });

      var position = 0;
      pdf.addImage(contentDataURL, 'PNG', 0, position, imgWidth, imgHeight);
      console.log("pdf to be made")
      pdf.save('Mapping.pdf'); // Generated PDF   
      console.log("pdf made")
    });
  }
}

[2] pdfMake

capture() {


  return new Promise((resolve, reject) => { 
    var inclusions = document.getElementById('entireTable');
    html2canvas(inclusions).then(function(canvas) {
        inclusions.appendChild(canvas);
        canvas.height = 800;

        const dataCanvas = canvas.toDataURL('image/png');

        var docDefinition = {
          content: [
              {
                  image: dataCanvas,
                  width: 450
              }
              ]
      };

      console.log(docDefinition);
      pdfMake.createPdf(docDefinition).download("travel.pdf");
        resolve( dataCanvas);
        console.log(inclusions);
    }); 
});

}
...