javascript - 提供的数据不是 ReactJS 中有效的 base64 字符串 jsPDF

标签 javascript reactjs pdf jspdf html2canvas

嗨,我正在 try catch 屏幕截图,将其放入 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 字符串 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 时屏幕上出现问题。

最佳答案

我鼓励您使用refs而不是 document.getElementById("field")

关于javascript - 提供的数据不是 ReactJS 中有效的 base64 字符串 jsPDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59641644/

相关文章:

javascript - 单击验证链接后,Firebase 将用户重定向到页面

javascript - 简单的面向对象的 JavaScript 示例

reactjs - React redux 基于哈希的路由

reactjs - 过滤嵌套的 JSON 对象

php - Laravel 5.2 - PHPExcel_Writer_Exception : Unable to load PDF Rendering library in

.net - 在 .NET WebBrowser 控件中显示 PDF 时如何隐藏 Adob​​e Reader 工具栏?

javascript - 使用 jquery load() 加载动态内容

javascript - 如何在 JavaScript 中获得两个月(YYYYMM)之间的差异?

javascript - 在 React 中,根据数组中对象的值将状态作为数组返回

c# - 将映射或 UNC 路径转换为 ​​http url