使用jsPDF生成PDF时遇代码不识别问题求助
解决jsPDF无法识别的问题
你遇到的问题是因为引入的是jsPDF的UMD版本,这个版本不会把jsPDF直接暴露为全局变量,而是封装在window.jspdf对象中,直接调用new jsPDF()自然找不到该对象。
修改代码如下,调整jsPDF的实例化方式:
<!DOCTYPE html> <html lang="en"> <head> <title>Generate PDF jsPDF</title> </head> <body> <button id="button" onclick="pdf()">Create PDF</button> </body> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> <script> function pdf() { // 从jspdf命名空间中获取jsPDF构造函数 const { jsPDF } = window.jspdf; var doc = new jsPDF() doc.text('hello, world!', 10, 10) // 注意文件名应为PDF格式,修正为output.pdf doc.save('output.pdf') } </script> </html>
另外提供两个可选方案:
- 若想直接使用全局变量,可替换为jsPDF的非UMD版本,引入
https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.min.js后,就能直接调用new jsPDF()。 - 用事件监听替代内联
onclick,避免全局函数的潜在问题:
<!DOCTYPE html> <html lang="en"> <head> <title>Generate PDF jsPDF</title> </head> <body> <button id="button">Create PDF</button> </body> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script> <script> const { jsPDF } = window.jspdf; document.getElementById('button').addEventListener('click', () => { var doc = new jsPDF() doc.text('hello, world!', 10, 10) doc.save('output.pdf') }); </script> </html>
内容的提问来源于stack exchange,提问作者Joel
相关产品推荐
相关产品推荐

