You have to install @types/jspdf and @types/jspdf-autotable as dev-dependencies.
If you use yarn:
yarn add -D @types/jspdf @types/jspdf-autotable
For npm use:
npm install @types/jspdf @types/jspdf-autotable --save-dev
Answer from Flo Ragossnig on Stack Overflow
» npm install jspdf-autotable
Videos
You have to install @types/jspdf and @types/jspdf-autotable as dev-dependencies.
If you use yarn:
yarn add -D @types/jspdf @types/jspdf-autotable
For npm use:
npm install @types/jspdf @types/jspdf-autotable --save-dev
npm install jspdf jspdf-autotable
for any dependency error execute below statement
npm install jspdf jspdf-autotable --force
Just delete the 2 first line of imports and add the following lines:
import { jsPDF } from 'jspdf';
import { autoTable } from 'jspdf-autotable';
autoTable(doc, { ... })
You can see an example here
i was geting same issue and I fixed it like this:
import jsPDF from '../../node_modules/jspdf/dist/jspdf.umd.min.js'
import { applyPlugin } from 'jspdf-autotable'
applyPlugin(jsPDF)
i use "jspdf": "^2.3.1", "jspdf-autotable": "^3.5.20" i hope it helps you!
» npm install jspdf
Is working for me Angular 5.
To work with jspdf-autotable in angular 5, one must install jspdf and jspdf-autotable via npm
npm install jspdf --save
npm install @types/jspdf --save-dev
npm install jspdf-autotable --save
also add the jspdf and jspdf-autotable files to the scripts array in angular-cli.json
"scripts": [
"../node_modules/jspdf/dist/jspdf.min.js",
"../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"
],
and in component never import jspdf or jspdf-autotable just.
Forget about the following import.
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
Just use Before @Component:
declare var jsPDF: any;
Your component (related parts ):
declare var jsPDF: any;
@Component({
selector: "energy-login",
templateUrl: "./login.component.html",
styleUrls: ["./login.component.scss"]
})
export class MyComponent implements OnInit {
constructor() {}
ngOnInit() {}
downloadPDF() {
let columns = ["ID", "Name", "Country"];
let rows = [
[1, "Shaw", "Tanzania"],
[2, "Nelson", "Kazakhstan"],
[3, "Garcia", "Madagascar"],
];
let doc = new jsPDF('l', 'pt');
doc.autoTable(columns, rows); // typescript compile time error
doc.save('table.pdf');
}
}
I was able to please TypeScript like this:
import jsPDF from 'jspdf';
import 'jspdf-autotable';
import { UserOptions } from 'jspdf-autotable';
interface jsPDFWithPlugin extends jsPDF {
autoTable: (options: UserOptions) => jsPDF;
}
...
const doc = new jsPDF('portrait', 'px', 'a4') as jsPDFWithPlugin;
doc.autoTable({
head: [['Name', 'Email', 'Country']],
body: [
['David', '[email protected]', 'Sweden'],
['Castille', '[email protected]', 'Norway']
]
});
Works in Angular 7 (also works in Angular 14)