Angular10使用jsPDF@2.3.1调用fromHTML方法提示属性不存在如何解决?
报错原因
- jsPDF从2.0.0版本开始正式废弃了旧版的
fromHTML()API,你使用的2.3.1版本已经完全移除了该方法,所有沿用1.x版本教程调用fromHTML()的代码都会抛出该错误。 - Angular 10使用TypeScript开发,jsPDF 2.x版本内置的TS类型定义中已经完全删除了
fromHTML的相关声明,因此编译阶段就会直接报属性不存在的错误。
修复方案
方案1:使用官方推荐的替代API(推荐)
2.x版本官方使用html()方法完全替代原fromHTML()的能力,适配性和转换效果更好,调整代码即可直接使用:
- 先卸载可能存在的旧版类型依赖,避免类型冲突:
npm uninstall @types/jspdf - 替换原有转换逻辑,示例代码如下:
import jsPDF from 'jspdf'; // 建议在ngAfterViewInit生命周期或DOM渲染完成后调用 generatePdf() { const doc = new jsPDF(); const targetDom = document.getElementById('your-html-element-id'); doc.html(targetDom, { callback: (pdf) => { pdf.save('export.pdf'); }, // 自定义PDF内内容的边距 x: 15, y: 15 }); }
方案2:降级jsPDF到1.x版本(不推荐)
如果必须沿用原有fromHTML()的代码逻辑,可以将jsPDF降级到还保留该API的1.x版本:
npm install jspdf@1.5.3
注意:1.x版本不再维护,存在浏览器兼容性差、转换样式错乱等已知问题,非必要不建议使用。
内容的提问来源于stack exchange,提问作者Praduman Kumar
相关产品推荐
相关产品推荐

