You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 20:48:14