Angular 8-JSPDF和JSPDF-AutoTable
我需要在html中以一个网格导出/生成一个pdf表格,但是必须使用CSS进行一些DOM更改,删除一些切换按钮并更改标题等,并且我发现所有解决方案都在打印中有一些变化,例如简单的window.print ()。我也尝试了pdfmake-wrapper和ngx-export-as,但是它们没有autoTable的魔力...最后一个dom更改被忽略,除非我使用Renderer2 DOM操作... 但是我需要一个具有CSS类更改注入且没有轻弹的解决方案,所以我得到了JSPDF。
我通过npm安装了jspdf和jspdf-autotable软件包。
"dependencies": {
...
"jspdf": "^1.5.3",
"jspdf-autotable": "^3.2.4",
...
}
在angular-cli.json文件中,我嵌入了脚本:
"scripts": [
"../node_modules/jspdf/dist/jspdf.min.js",
"../node_modules/jspdf-autotable/dist/jspdf.plugin.autotable.js"
],
在我的component.ts文件中,我已按如下所示导入了这些文件:
import * as jsPDF from 'jspdf';
import * as autoTable from 'jspdf-autotable';
我也尝试过这些行来导入jspdf-autotable
import * as jsPDF from 'jspdf';
import 'jspdf-autotable';
我也尝试过另一种组合。
import jsPDF = require('jspdf');
import { autoTable as AutoTable } from 'jspdf-autotable';
但是什么也没用。
//在我的component.ts文件中,我使用的示例代码如下:
let columns = ["ID", "Name", "Age", "City"];
var data = [
[1, "Jonatan", 25, "Gothenburg"],
[2, "Simon", 23, "Gothenburg"],
[3, "Hanna", 21, "Stockholm"]
];
const doc = new jsPDF(); // or let doc = new jsPDF.default();
doc.autoTable(columns, data);
doc.save("filename");
但是现在,当我运行node命令以启动应用程序,然后在调试期间,出现以下错误:
a-类型'jsPDF'上不存在属性'autoTable'。
b-错误TS2339:'typeof jsPDF'类型不存在属性'default'。
任何想法?
我认为您想要做的是做类似的事情:
使用此示例