jsPDF AutoTable - autoTable не является функцией

Я использую JSPdf в приложении Angular, и я пытаюсь использовать плагин автоматической таблицы JS, но у меня возникает ошибка JS

ИСКЛЮЧЕНИЕ: Uncaught (в обещании): TypeError: doc.autoTable не является функцией

TypeError: doc.autoTable не является функцией

У меня установлены jspdf и jspdf-autotable через npm, я подтвердил, что они находятся в модулях узлов.

Я импортировал оба плагина следующим образом:

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

Могу ли я чего-то здесь упустить или предоставить дополнительный код, чтобы помочь определить проблему?

Спасибо!


person Stu Furlong    schedule 23.06.2017    source источник


Ответы (4)


Просто удалите 2 первые строки импорта и добавьте следующие строки:

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

Вы можете увидеть пример здесь

person Jorge Casariego    schedule 23.06.2017
comment
Это только что спасло мне день! - person ni8mr; 14.05.2018

У меня была такая же проблема, и это сработало для меня. я написал это в импорте как

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

И в функции я объявил это как

const doc = new jsPDF();
person Anup Bangale    schedule 12.03.2019

Сегодня у меня была такая же проблема при использовании 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"
]
person Ewomazino Ukah    schedule 17.04.2018

Вы можете импортировать jsPDF как обычно:

import jsPDF from 'jspdf';

а затем для autoTable:

require('jspdf-autotable');

добавьте это ^ внутри функции

person Sachini Witharana    schedule 04.09.2020