【发布时间】:2019-09-26 17:06:50
【问题描述】:
Angular 8 - JSPDF & JSPDF-AutoTable
我需要在 html 中导出/生成一个基于一个网格的 pdf,但是需要使用 css 进行一些 DOM 更改,删除一些切换按钮和更改标题等,并且我找到的所有解决方案都像简单的窗口一样打印了一些轻弹。打印()。我也尝试了 pdfmake-wrapper 和 ngx-export-as,但它们没有 autoTable 魔法……最后一个 dom 更改被忽略,除非我使用 Renderer2 DOM 操作……但是我需要一个带有 css 类更改注入且没有 flick 的解决方案,所以我取回了 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”。
有什么想法吗?
【问题讨论】:
-
我找到了一个使用 doc.table() here...生成表格的部分解决方案....但是导入 jsPDF 总是返回错误,我试图发送到自动构建服务器,但是返回该错误“默认”。
标签: angular typescript jspdf jspdf-autotable