jsPDF не может распознать .html () (свойство .html () не существует для типа jspdf) - PullRequest
0 голосов
/ 28 марта 2019

Сценарий, который у меня есть, состоит в том, что вместо элемента dom, который я выбираю для заполнения в jspdf, мне нужно получить выходные данные другого метода в угловом компоненте, в котором я работаю, преобразовать этот вывод в элемент dom, затем захватить этот элемент dom и закачать его в jspdf. Я использую правильные версии html2canvas и jspdf, которые позволяют использовать метод .html, но я получаю сообщение об ошибке:

property .html does not exist on type .jsPDF

this.termsHistory извлекает массив, а затем мы берем 2-й элемент массива (значение индекса 1, массив начинается с 0) и извлекаем .contentText этого объекта для закачки в новый div.

downloadPDF(termsId: string) {
    const index1 = this.termsHistory.findIndex((p: { termsAndConditionId: string }) => {
      return p.termsAndConditionId == termsId;
    });
    if(index1 >= 0) {
      const content2 = (index: any) => {
        return this.termsHistory[index].contentText;
      };
      const newDiv = document.createElement("div");
      const divContent = document.createTextNode(content2(index1)); 
      newDiv.appendChild(divContent); 
      newDiv.setAttribute("id", "jsPDFContent");
      document.body.appendChild(newDiv);
      document.getElementById('jsPDFContent').classList.add('pdf-export');
      const data = document.getElementById('jsPDFContent'); 
        window['html2canvas'] = html2canvas;
        const doc = new jspdf('p', 'pt', 'letter');
        doc.html(data, {callback: function(pdf){
          const iframe = document.createElement('iframe');
          iframe.setAttribute('style', 'position: absolute; right: 0; top: 0; bottom: 0; height: 100%; width: 500px;');
          document.body.appendChild(iframe);
          iframe.src = pdf.output('datauristring');
        }});

  };
...