【发布时间】:2020-08-31 09:06:42
【问题描述】:
我试图使用jspdf 库打印我的页面。我已经尝试了很多解决方案来完成这里的示例以及几乎每个 Google 建议链接,但我仍然无法修复它。
这是我迄今为止尝试过的:
import * as jsPDF from 'jspdf';
.....
openPDF(): void {
const DATA = this.couponPage.nativeElement;
const doc = new jsPDF('p', 'pt', 'a4');
doc.fromHTML(DATA.innerHTML, 15, 15);
doc.output('dataurlnewwindow');
}
尝试像上面那样导入jsPDF会在编译时产生以下错误
src/...component.ts:42:21 中的错误 - 错误 TS2351:此表达式不可构造。 类型 'typeof import("jspdf")' 没有构造签名。
42 const doc = new jsPDF('p', 'pt', 'a4');
所以,我尝试按照stackoverflow answer 中的建议以另一种方式导入它
declare var jsPDF: any;
但这会产生一个控制台错误,指出 jsPDF 未定义。
然后我找到了另一个解决方案,发布在此处Angular 10/9/8 PDF Tutorial – Export PDF in Angular with JSPDF
现在按照这个方法我得到了以下错误
ERROR TypeError: doc.fromHTML is not a function openPDF notice.component.ts:43 ...Component_Template_button_click_2_listener ...component.html:3 角 23
我不知道我在这里错过了什么,因为这个库应该适用于所有 Angular 版本。任何帮助将不胜感激。
在这里我创建了一个Stackblitz project
【问题讨论】:
-
你可以参考这里的 Stackblitz 如何导入
jsPDF: stackblitz.com/edit/jspdf-fpmqwp -
您是否在 angular.json 的脚本中添加了
"./node_modules/jspdf/dist/jspdf.min.js",?否则declare var...不会成功 -
@CharybdeBE 是的,我确实包含在
angular.json -
@MichaelD 它不工作仍然抛出
doc.fromHTML is not a function的控制台错误