如何将jsPDF生成的PDF存入变量以用作邮件附件?
用jsPDF捕获生成的PDF到变量的方法
jsPDF 提供了 output() 方法,可以直接将生成的PDF以多种格式输出到变量中,以下是几种常用场景的实现:
获取Base64格式数据
适合多数邮件库的附件参数要求:
// 初始化jsPDF实例并添加表格内容 const doc = new jsPDF(); // 示例:添加表格(根据你的实际代码调整,比如使用autoTable插件) doc.autoTable({ html: '#your-table-id' }); // 输出带DataURL前缀的Base64字符串 const pdfBase64 = doc.output('datauristring'); // 或者提取纯Base64内容(去掉前缀) const rawPdfBase64 = pdfBase64.split(',')[1];
获取Blob/File对象
适合现代浏览器中处理文件的场景,可直接作为邮件附件对象:
const doc = new jsPDF(); doc.autoTable({ html: '#your-table-id' }); // 生成Blob对象 const pdfBlob = doc.output('blob'); // 转换为File对象(可选,部分邮件函数需要File类型) const pdfFile = new File([pdfBlob], '表格导出.pdf', { type: 'application/pdf' });
获取二进制数组(Uint8Array)
适合需要二进制数据的后端邮件API:
const doc = new jsPDF(); doc.autoTable({ html: '#your-table-id' }); // 输出ArrayBuffer,转为Uint8Array const pdfUint8Array = new Uint8Array(doc.output('arraybuffer'));
生成的变量(pdfBase64/pdfBlob/pdfUint8Array等)可以直接传入你的邮件发送函数,作为附件参数使用。
内容的提问来源于stack exchange,提问作者Stumpered
相关产品推荐
相关产品推荐

