自v3.5.13jsPDF v2.1.1起,无法使用jsPDF-AutoTable是一项功能

问题描述

当我使用旧版本的库时,可以很好地创建pdf。但是由于这些新版本,我不能。之前我刚刚下载了jspdf.min.js文件,但现在我可以看到各种版本,例如umd,es。。但是我不知道要使用什么(?),所以我下载了 umd 版本。 我不使用angular或node.js,因此在创建pdf之前,无法在我的javascript代码中使用requireimport(在导入时出现错误Uncaught SyntaxError: export declarations may only appear at top level of a module)指令文件。因此,我使用const { jsPDF } = window.jspdf;来使用jsPDF类(在第const doc = new jsPDF();行之后,我收到错误“未捕获的ReferenceError:未定义jsPDF”)。 但是我也想使用插件AutoTable,并且在插件https://github.com/simonbengtsson/jsPDF-AutoTable的官方页面中,作者使用import或require,对我来说这是行不通的。当我尝试

const { jsPDF } = window.jspdf;
const doc= new jsPDF();
doc.autoTable({
  head: [['Name','Email','Country']],body: [
    ['David','david@example.com','Sweden'],['Castille','castille@example.com','Spain'],],})

我收到错误Uncaught TypeError: pdf.autoTable is not a function。我怎样才能正确使用这些库? 我想jsPDF适用于 umd const { jsPDF } = window.jspdf;版本(我只创建了一个带有字符串的简单文档,它起作用了),但是AutoTable不起作用

解决方法

导出autoTable方法,从'jspdf-autotable'导入autoTable

function createPdf() {
var doc = new jsPDF();
const head = [['ID','Country','Index','Capital']]
const data = [
[1,'Finland',7.632,'Helsinki'],[2,'Norway',7.594,'Oslo'],[3,'Denmark',7.555,'Copenhagen'],[4,'Iceland',7.495,'Reykjavík'],[5,'Switzerland',7.487,'Bern'],[9,'Sweden',7.314,'Stockholm'],[73,'Belarus',5.483,'Minsk'],]
autoTable(doc,{
head: head,body: data,didDrawCell: (data) => {
console.log(data.column.index)
},})
doc.save('repro.pdf');
}
,

唯一适用于我的解决方案是将jsPDF和AutoTable的代码保存在同一文件中。我知道这不是一个好主意,我想将它们放在单独的文件中,但是我还没有找到其他方法。任何人都可以说出一种更好的方法来避免错误,那太好了

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...