jsPDF 从 1.5.3 升级到 2.5.1 不起作用

jsPDF upgrade from 1.5.3 to 2.5.1 don't work

我使用的是 jsPDF 版本 1.5.3(jspfd.min.js 下载并保存),它每年都运行良好。然而我已经测试了版本 2.5.1(jspfd.min.js 从 unpkg 下载并保存)。这给出了错误:Uncaught ReferenceError: jsPDF is not defined。这是不可能的,因为 variable/function 肯定存在。对于 1.5.3 版,此错误也应该出现,但事实并非如此。当(使用 2.5.1)我在 Firefox 控制台中调用变量 jsPDF 时,它会自动更改为 jspdf 并显示一个对象。真的调用jsPDF 是错误。当我将脚本中的名称从 new jsPDF 更改为 new jspdf 时,出现错误:Uncaught TypeError: jspdf is not a constructor。有什么问题?

显然 2.0.0 版中有一些重大更改。

We also changed the name of the global variable to jspdf (lower case) when using script tags to be consistent with the new es modules format and named imports/exports.

添加以下行应该可以实现向后兼容性:

window.jsPDF = window.jspdf.jsPDF

您需要导入模块如下:

import { jsPDF } from "jspdf";

对于其他模块格式,请直接查看 repo 文档:https://github.com/parallax/jsPDF,例如:

// Node.js
const { jsPDF } = require("jspdf");

// Globals
const { jsPDF } = window.jspdf;
const doc = new jsPDF();

// ...