RID*_*NIK 5 jspdf jspdf-autotable angular
我想在我的Angular 5.2.0项目中使用jsPDF和jspdf-autotable.我的package.json在下面(相关部分):
"dependencies": {
...
"jspdf": "^1.3.5",
"jspdf-autotable": "^2.3.2"
...
}
Run Code Online (Sandbox Code Playgroud)
我的angular-cli.json在下面(相关部分):
"scripts": [
...
"../node_modules/jspdf/dist/jspdf.min.js",
"../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"
...
]
Run Code Online (Sandbox Code Playgroud)
我的组件(相关部分):
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
@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');
}
}
Run Code Online (Sandbox Code Playgroud)
它说:
[ts] Property 'autoTable' does not exist on type 'jsPDF'.
Run Code Online (Sandbox Code Playgroud)
我试图用我的组件替换导入
// import * as jsPDF from 'jspdf';
// import 'jspdf-autotable';
declare var jsPDF: any;
Run Code Online (Sandbox Code Playgroud)
然后没有编译时错误,但在运行downloadPDF()函数时它说:
ERROR ReferenceError: jsPDF is not defined
Run Code Online (Sandbox Code Playgroud)
小智 8
为我工作Angular 5.
要在角度5中使用jspdf-autotable ,必须通过npm安装jspdf和jspdf-autotable
npm install jspdf --save
npm install @types/jspdf --save-dev
npm install jspdf-autotable --save
Run Code Online (Sandbox Code Playgroud)
还将jspdf和jspdf-autotable文件添加到angular-cli.json中的scripts数组中
"scripts": [
"../node_modules/jspdf/dist/jspdf.min.js",
"../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"
],
Run Code Online (Sandbox Code Playgroud)
并且在组件中永远不会导入jspdf或jspdf-autotable.
忘记以下导入.
import * as jsPDF from 'jspdf'; import 'jspdf-autotable';
只需使用Before @Component:
declare var jsPDF: any;
Run Code Online (Sandbox Code Playgroud)
您的组件(相关部分):
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');
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
我能够像这样取悦 TypeScript:
import * as 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', 'david@example.com', 'Sweden'],
['Castille', 'castille@example.com', 'Norway']
]
});
Run Code Online (Sandbox Code Playgroud)
适用于 Angular 7。
我正在使用 angular 7,declare var jsPDF: any;但对我不起作用。经过一番谷歌搜索,解决方案是:
declare const require: any;
const jsPDF = require('jspdf');
require('jspdf-autotable');
Run Code Online (Sandbox Code Playgroud)
当然,我从 npm 安装了模块并将它们包含到 angular.json 中的脚本数组中。它对我来说很好用。
要在 Angular 5 中使用 jspdf-autotable,必须通过 npm 安装 jspdf 和 jspdf-autotable
npm install jspdf-autotable --save
Run Code Online (Sandbox Code Playgroud)
还将 jspdf 和 jspdf-autotable 文件添加到 angular-cli.json 中的脚本数组中
"scripts": [
"../node_modules/jspdf/dist/jspdf.min.js",
"../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"
],
Run Code Online (Sandbox Code Playgroud)
并且在组件中永远不要导入 jspdf 或 jspdf-autotable
declare var jsPDF: any;
Run Code Online (Sandbox Code Playgroud)
当然,在使用 jspdf-autotable 之前,应该安装 jspdf 并通过 npm 进行开发 @types/jspdf
npm install jspdf --save
npm install @types/jspdf --save-dev
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12695 次 |
| 最近记录: |