开发者问题收集

Angular:Typescript:未捕获的 TypeError:无法设置未定义的属性“autoTable”

2020-09-01
1209

我尝试使用 angular 和 jspdf-autotable 导入一个简单的表格。但是我不能,这是错误

jspdf.plugin.autotable.js:1023 Uncaught TypeError: Cannot set property 'autoTable' of undefined
    at Object.<anonymous> (jspdf.plugin.autotable.js:1023)
    at __webpack_require__ (jspdf.plugin.autotable.js:39)
    at jspdf.plugin.autotable.js:103
    at jspdf.plugin.autotable.js:106
    at webpackUniversalModuleDefinition (jspdf.plugin.autotable.js:12)
    at Object../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js (jspdf.plugin.autotable.js:19)
    at __webpack_require__ (bootstrap:84)
    at Module../src/app/components/zone-list/zone-list.component.ts (zone-list.component.ts:12)
    at __webpack_require__ (bootstrap:84)
    at Module../src/app/app-routing.module.ts (app-routing.module.ts:3)

对于 package.json :

"jspdf": "^2.1.0",
"jspdf-autotable": "^2.3.5",

对于 .ts :

这里是 import :

import jsPDF from 'jspdf';
var autoTable = require('jspdf-autotable');

这里是下载功能 :

var head = [['ID', 'Country', 'Rank', 'Capital']]
var data = [
  [1, 'Denmark', 7.526, 'Copenhagen'],
  [2, 'Switzerland', 7.509, 'Bern'],
  [3, 'Iceland', 7.501, 'Reykjavík'],
  [4, 'Norway', 7.498, 'Oslo'],
  [5, 'Finland', 7.413, 'Helsinki'],
]
const doc = new jsPDF()
autoTable(doc, {
  head: head,
  body: data,
  didDrawCell: (data) => {
    console.log(data.column.index)
  },
})

doc.save('table.pdf')

告诉我哪里出错了?

2个回答

如果将

var autoTable = require('jspdf-autotable') 替换为: import autoTable from 'jspdf-autotable' ,会发生什么情况?

IamFlok
2020-09-01

解决方案:请勿使用JSPDF,请使用pdfmake [https://www.npmjs.com/package/pdfmake/pdfmake]当然,有更好的功能,可以更轻松地编码

- 当我们谈论特殊功能或目的时,没有库是100%完美的。例如:我的案例是html表格在打字稿中的pdf。我的桌子屏幕截图,我不再需要担心我的屏幕截图,图像调整大小。此外,我有一个在PDF中的实际表,这意味着我可以从PDF复制数据,不仅是图像。

,因此让我们开始。

安装PDFMAKE:

(我的案例是为Angular安装的)

194143850

typescript代码:

导入:

612402940

写功能:

现在只需写一个您要触发的下载PDF的功能PDF下载按钮

995487238

3个抬头:

  1. 我有一张桌子,上面有3列SLNO,名称,年龄。设计您的桌子 根据您的需要。
  2. 如果您有非弦乐项目,请将其转换为字符串(我必须 将我的年龄转换为字符串,如果您不这样做,您可能会有错误 - 我 必须面对)
  3. 您看到我必须提供一个不必要的行,然后将其删除。你可能 也必须这样做(我必须是因为我面临错误,如果您有 找到更好的解决方案,请发布)

礼貌:

我从下面的两个链接中获得了帮助:

  1. 如何使用pdfmake
  2. this github链接

2020-09-08