jsPDF AutoTable - autoTable 不是函数

jsPDF AutoTable - autoTable is not a function

我在 Angular 应用程序上使用 JSPdf,我正在尝试使用 JS autotable 插件,但我 运行 遇到 JS 错误

EXCEPTION: Uncaught (in promise): TypeError: doc.autoTable is not a function

TypeError: doc.autoTable is not a function

我通过 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');
}

这里有什么我可能遗漏的吗?或者我可以提供更多代码来帮助确定问题吗?

谢谢!

只需删除第一行 imports 并添加以下行:

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

你可以看一个例子here

我今天在使用 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"
]

我遇到了同样的问题,这个问题对我有用。 我已经把它写成 import as

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

在函数中我将其声明为

const doc = new jsPDF();

您可以像正常导入一样导入 jsPDF :

import jsPDF from 'jspdf';

然后是自动表:

require('jspdf-autotable');

在函数中添加这个 ^

我遇到了同样的问题,我是这样解决的:

import jsPDF from '../../node_modules/jspdf/dist/jspdf.umd.min.js'
import { applyPlugin } from 'jspdf-autotable'
applyPlugin(jsPDF)

我使用“jspdf”:“^2.3.1”,“jspdf-autotable”:“^3.5.20” 希望对你有帮助!

这对我有用:

import jsPDF from 'jspdf';

require('jspdf-autotable');

const tableColumns = ["column1", "Column2", "Column3"];

const tableRows = [[1,2,3],[a,b,c],[X,Y,Z]];

const doc = new jsPDF();

doc.autoTable(tableColumns, tableRows, { startY: 20 });

doc.text("Closed tickets within the last one month.", 14, 15);

doc.save('dataModel.pdf');
import jsPDF from 'jspdf';
import autoTable from 'jspdf-autotable';

const doc = new jsPDF();
autoTable(doc, { html: '#my-table' });
doc.save('table.pdf');`

这对我有用