首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未捕获ReferenceError: jsPDF未在版本2.3.0和纯JS中定义

未捕获ReferenceError: jsPDF未在版本2.3.0和纯JS中定义
EN

Stack Overflow用户
提问于 2021-02-24 01:24:15
回答 1查看 975关注 0票数 2

我需要从一个表格生成一个PDF报告,我正在使用jsPDF和jsPDF-autotable。我知道用jsPDF生成一个PDF文件非常简单,我相信我遵循了jsPDF文档页面上提到的步骤,但到目前为止我还没有取得任何成功。我也经历了许多类似的问题,但似乎没有一个对我有效。

下面是我是如何在html head标签中导入jsPDF和jsPDF-autotable的:

下面是我的按钮的html代码代码,它应该触发一个JavaScript函数:

代码语言:javascript
运行
复制
Generate Report

下面是JavaScript函数,它应该只是基于一个表生成一个PDF文件:

代码语言:javascript
运行
复制
function prepareReport() {
    var doc = new jsPDF();
    doc.autoTable({ html: '#reportTable' });
    doc.save(stationSelected + '_' + dateSelected + '.pdf');
}

下面是我得到的控制台错误:

代码语言:javascript
运行
复制
reports.js:180 Uncaught ReferenceError: jsPDF is not defined
at prepareReport (reports.js:180)
at HTMLButtonElement.onclick (reports:213)

我会真心感谢所有我能得到的帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-24 05:27:36

问题出在您的函数中:

代码语言:javascript
运行
复制
function prepareReport() {
    var doc = new jsPDF();
    doc.autoTable({ html: '#reportTable' });
    doc.save(stationSelected + '_' + dateSelected + '.pdf');
}

像您一样使用标签导入此模块,在查看 jsPDF 项目存储库后,将全局变量导出为 jspdf,而不是 jsPDF

因此,正确的工作版本应该是:

代码语言:javascript
运行
复制
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.

工作示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66338033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档