- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Angular 8 - JSPDF 和 JSPDF-AutoTable
我需要在 html 中导出/生成一个基于 1 个网格的 pdf,但需要使用 css 更改一些 DOM,删除一些切换按钮并更改标题等,我发现的所有解决方案都有一些像简单窗口一样的打印效果。打印()。我也尝试过 pdfmake-wrapper 和 ngx-export-as,但它们没有 autoTable 魔法……最后一个 dom 更改被忽略,除非我使用 Renderer2 DOM 操作……但是我需要一个带有 css 类更改注入(inject)且没有 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”。
有什么想法吗?
最佳答案
你必须使用如下。我有一段时间有同样的问题,但是在向开发人员询问后,我发现您必须使用 jsPdf() 的实例作为 autoTable() 函数的参数。休息如 documentation jsdpf的。
import { Component, OnInit } from '@angular/core';
import * as jsPDF from 'jspdf';
import autoTable from 'jspdf-autotable';
const doc = new jsPDF();
const columns = [['First Column', 'Second Column', 'Third Column']];
const data = [
['Data 1', 'Data 2', 'Data 3'],
['Data 1', 'Data 2', 'Data 3']
];
autoTable(doc, {
head: columns,
body: data,
didDrawPage: (dataArg) => {
doc.text('PAGE', dataArg.settings.margin.left, 10);
}
});
doc.save('table.pdf');
示例
源代码
https://codesandbox.io/s/currying-pine-wjp1g?file=/src/app/app.component.ts
现场演示
https://wjp1g.csb.app/
关于Angular 8,使用 jspdf 和 autotable-jspdf 导入/使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121653/
有人可以帮忙举一个为 jspdf-autotable 设置自定义字体的例子吗? 我尝试了以下 var doc = new jsPDF('p', 'pt'); doc.setFont("rotobo")
我在 Angular 应用程序上使用 JSPdf,我正在尝试使用 JS 自动表插件,但我遇到了 JS 错误 EXCEPTION: Uncaught (in promise): TypeError: d
我正在使用 jsPDF Autotable 从 HTML 表格生成 PDF。 TD 元素包含一个用变量填充单元格的 ID。一切正常,但我想将负值的 textColor 设置为红色。我找不到如何实现此目
我对 jsPDF autotable 有疑问。 我的代码: $('#printBtn').on('click', function() { var pdf = new jsPDF('p
我正在尝试创建一个如下所示的表格: 我已经实现了类似的目标,但我需要删除表格之外的边框。现在我使用 lineWidth: 0.2, lineColor: [73, 138, 159] 来创建边框,但这
我正在使用 jsPDF Autotable 生成包含多个表格的 pdf 文档。 函数生成(){ var doc = new jsPDF('l', 'pt', 'a3'); var res = do
下面是我从后端获得的示例响应。 let data = [ { "thisIsTheResponseFromBackEnd": [ { "Col Header 1": "
在网络应用程序中,我使用 JSPDF Autotable 来构建 PDF。问题是数据将是动态的(我将使用 AngularJS 1.x),因此行可以有不同的高度。 在某些情况下,Autotable 会打
我想用 JSPDF 导出 PDF,我使用插件作为“jspdf.autotable”来创建表格。现在的问题是我想要如下格式样式: 如您所见,表格外有一个边框,但标题部分没有,我已经实现了,但是当行超过页
我正在尝试使用 jsPdf Auto-table 将动态数据打印到 pdf 文件中。当我这样做时,我遇到了某种错误,例如 The headers should be an object or arra
我正在使用 angular2 和 Node JS。我已经安装了jspdf和 jspdf-autotable两个模块都使用 npm。在 angular-cli.json 文件中,我嵌入了脚本: "scr
我有自动表的问题。我的表由 thead、tbody 和 tfoot 组成。我的脚是我在每一列上的总值(value)。我能够生成 pdf,但 tfoot 或总页脚不断打印在每一页上。我在检查文档时使用
我有一个带有 rowspan/colspan 的 html 表格。我正在使用 jspdf 和 jspdf-autotable 将该 html 表格导出为 pdf。但是,保存的 pdf 有一个表,该表在
我尝试使用 jsPdf AutoTable 将动态数据打印到 PDF 中。但我未能做到这一点。我搜索了很多网站,但没有人提到将动态数据放入 Row 中。所以我的问题是,有没有什么方法可以将动态数据放入
我想使用 jspdf autotable 插件将这两个表打印为 pdf。但我编写的脚本仅打印第二个表。我认为问题出在剧本的编写上。有人会指导我如何使用 jspdf-autotable 打印这两个表格吗
我正在尝试使用 jspdf 和 jspdf-Autotable 构建一个小型应用程序,但我不知道如何使用另一个变量值创建自定义最后一行现有的表。 到目前为止我所做的是: doc.autoTable
我正在使用 jsPDF 从 HTML 表格生成 PDF 并且 jsPDF 很棒,预计我遇到一个问题,当我尝试包装 columnWidth 时,我的表格被切断了:( var doc = new jsPD
我正在尝试将“HTML 中的表格”与“页眉”结合起来...查看示例。我可以让每个人单独工作,但不能一起工作。 当我将两者结合起来时,我遇到了问题......你能看出我在这里做错了什么吗?为什么这不起作
有人使用 jsPDF autoTable 从 Table 中排除 pdf 结果中的列的经验..Would appriciate 一点帮助。 最佳答案 无论如何,在深入研究 API 和示例之后。我找到了
我正在尝试使用 JSPDF 和 AutoTable 从 html 表格生成 PDF 文件。 在我的示例中,有一个带有两个标题行的 html 表格,如下所示: ID
我是一名优秀的程序员,十分优秀!