Предоставленные данные не являются допустимыми base64-String jsPDF в ReactJS - PullRequest
1 голос
/ 08 января 2020

Привет, я пытаюсь сделать снимок экрана, поместить его в PDF и загрузить с приложением ReactJS. Я создал метод, который после щелчка должен генерировать PDF:

generatePDF = () => {
    const printArea = document.getElementById("field")
    html2canvas(printArea).then(canvas => {
      const imgData = canvas.toDataURL('image/png');
      const pdf = new jsPDF();
      pdf.addImage(imgData, 'PNG', 0, 0, 200, 200);
      pdf.save("download.pdf");

    })
  }

Он возвращает мне ошибку: «Предоставленные данные не являются действительными base64-String jsPDF.convertStringToImageData»

Это мой метод рендеринга:

render() {
    return (
      <div>
        <div className="nav"></div>
        <div className="field" id="field">
          {
            this.createTables()
          }
        </div>
        <button onClick={this.generatePDF} style={{ marginTop: 500 }}>Generate PDF</button>
      </div>

    )
  }

Я проверял, generatePDF правильно выдает мне div, проблема появляется на экране при выполнении addImage.

Ответы [ 2 ]

0 голосов
/ 08 января 2020

Я бы рекомендовал вам использовать refs вместо document.getElementById ("field")

0 голосов
/ 08 января 2020

Проблема заключалась в том, что все элементы в div установили абсолютное положение, поэтому элементы были пустыми. Я изменил на stati c, и он отлично работает.

...