我需要从一个表格生成一个PDF报告,我正在使用jsPDF和jsPDF-autotable。我知道用jsPDF生成一个PDF文件非常简单,我相信我遵循了jsPDF文档页面上提到的步骤,但到目前为止我还没有取得任何成功。我也经历了许多类似的问题,但似乎没有一个对我有效。
下面是我是如何在html head标签中导入jsPDF和jsPDF-autotable的:
下面是我的按钮的html代码代码,它应该触发一个JavaScript函数:
Generate Report
下面是JavaScript函数,它应该只是基于一个表生成一个PDF文件:
function prepareReport() {
var doc = new jsPDF();
doc.autoTable({ html: '#reportTable' });
doc.save(stationSelected + '_' + dateSelected + '.pdf');
}
下面是我得到的控制台错误:
reports.js:180 Uncaught ReferenceError: jsPDF is not defined
at prepareReport (reports.js:180)
at HTMLButtonElement.onclick (reports:213)
我会真心感谢所有我能得到的帮助。谢谢。
发布于 2021-02-24 05:27:36
问题出在您的函数中:
function prepareReport() {
var doc = new jsPDF();
doc.autoTable({ html: '#reportTable' });
doc.save(stationSelected + '_' + dateSelected + '.pdf');
}
像您一样使用标签导入此模块,在查看 jsPDF 项目存储库后,将全局变量导出为 jspdf,而不是 jsPDF
因此,正确的工作版本应该是:
function prepareReport() {
var doc = new jspdf.jsPDF();
doc.autoTable({ html: '#reportTable' });
doc.save(stationSelected + '_' + dateSelected + '.pdf');
}
Note that this code alone is not enough, because stationSelected
and dateSelected
are not defined. You should also provide definitions for these values.
工作示例。
https://stackoverflow.com/questions/66338033
复制相似问题