如何将Angular页面转PDF并直接上传至文档服务,无需下载文件?
使用jsPDF生成PDF并直接上传(无需本地下载)
jsPDF不止有save()方法,你可以用它的output()方法获取PDF的原始数据,直接用来上传,完全不用触发本地下载。
核心步骤:
- 生成PDF内容后,调用
output()获取Blob格式的PDF数据(这是最适合上传的格式) - 用FormData包装这个Blob,通过fetch/axios发送到你的上传接口
示例代码:
// 初始化jsPDF并添加内容 const doc = new jsPDF(); doc.text('这是要生成的PDF内容', 15, 15); // 获取PDF的Blob对象,不用调用save() const pdfBlob = doc.output('blob'); // 构建FormData,模拟表单上传文件 const formData = new FormData(); // 第三个参数是上传时的文件名,可自定义 formData.append('pdfFile', pdfBlob, 'my-document.pdf'); // 发送上传请求(替换成你的实际接口地址) fetch('/api/upload-pdf', { method: 'POST', body: formData }) .then(res => res.json()) .then(result => { console.log('上传完成:', result); }) .catch(err => { console.error('上传出错:', err); });
额外说明:
output()还支持其他格式,比如'arraybuffer'或'datauristring',但Blob是最适合文件上传的- 如果用axios上传,写法和fetch类似,直接把FormData作为
data字段传入即可
内容的提问来源于stack exchange,提问作者Mayank Khandelwal
相关产品推荐
相关产品推荐

