如何在jsPDF中通过Blob URL自定义PDF输出文件名?
解决jsPDF通过Blob URL下载时自定义文件名的问题
不用修改jsPDF源码,通过浏览器标准API就能实现自定义文件名,具体步骤如下:
生成PDF的Blob对象
调用jsPDF的output('blob')方法获取PDF对应的Blob实例:const doc = new jsPDF(); doc.text('测试内容', 10, 10); const pdfBlob = doc.output('blob');通过a标签指定自定义文件名并触发下载
Blob URL本身是浏览器生成的临时地址,不包含文件名信息,我们需要利用a标签的download属性来设置自定义文件名:// 创建隐藏的a标签 const downloadLink = document.createElement('a'); // 生成Blob URL downloadLink.href = URL.createObjectURL(pdfBlob); // 自定义文件名(可传入变量动态生成) const customFileName = `我的自定义文档_${new Date().toLocaleDateString()}.pdf`; downloadLink.download = customFileName; // 触发点击下载 downloadLink.click(); // 释放Blob URL资源,避免内存泄漏 URL.revokeObjectURL(downloadLink.href);
补充说明
jsPDF的save()方法内部其实已经封装了上述逻辑,自动帮你创建a标签并设置download属性;而手动使用Blob URL时,只是把这个过程拆开来自己实现,完全不需要修改jsPDF源码。
内容的提问来源于stack exchange,提问作者JBAL27
相关产品推荐
相关产品推荐

