jsPDF AutoTable - autoTable不是一个函数

时间:2017-06-23 16:39:57

标签: javascript angularjs pdf-generation jspdf jspdf-autotable

我在Angular应用上使用JSPdf,我试图使用JS自动插件,但我遇到了JS错误

  

EXCEPTION:Uncaught(在promise中):TypeError:doc.autoTable不是函数

     

TypeError:doc.autoTable不是函数

我通过npm安装了jspdf和jspdf-autotable,我确认它们在节点模块中。

我以这种方式导入了两个插件:

import * as jsPDF from 'jspdf' 
import * as autoTable from 'jspdf-autotable'

这是我的代码:

private renderPdf():void{
    let testcolumns = ["TestCol1", "TestCol2"];
    let testrows = [["test item 1", "test item 2"]];
    let doc = new jsPDF();
    doc.autoTable(testcolumns, testrows);
    doc.save('sample.pdf');
}

我可以在这里找到什么或者我可以提供更多代码来帮助确定问题吗?

谢谢!

3 个答案:

答案 0 :(得分:12)

只需删除第2行导入并添加以下行:

var jsPDF = require('jspdf');
require('jspdf-autotable');

您可以看到示例here

答案 1 :(得分:0)

我在使用https://github.com/SimulatedGREG/electron-vue时遇到了同样的问题。我通过将'jspdf'和'jspdf-autotable'添加到path-to-project / .vscode中的白名单数组来解决它

let whiteListedModules = [
  'vue',
  'vue-sweetalert2',
  'element-ui',
  'vue-avatar-component',
  'vue-router', 
  'vue-json-excel',
  'vuex',
  'vue-chart-js',
  'pluralize',   
  'Print',
  'jspdf',
  "jspdf-autotable"
]

答案 2 :(得分:0)

您可以将jsPDF导入为通常导入的格式:

import jsPDF from 'jspdf';

然后是autoTable:

require('jspdf-autotable');

将此^添加到函数中