React Native中如何将Base64字符串下载为PDF文件
将Base64字符串转换为PDF并下载(无需fetch)
既然你已经预先获取到了Base64格式的PDF数据,直接用浏览器原生API就能实现下载,完全不需要fetch。以下是可直接使用的实现代码:
function downloadBase64AsPDF(base64String, fileName = "document.pdf") { // 移除Base64字符串的PDF类型前缀(如果存在) const pureBase64 = base64String.replace(/^data:application\/pdf;base64,/, ""); // 解码Base64为二进制数组 const decodedChars = atob(pureBase64); const byteArray = new Uint8Array(decodedChars.length); for (let i = 0; i < decodedChars.length; i++) { byteArray[i] = decodedChars.charCodeAt(i); } // 创建PDF Blob对象 const pdfBlob = new Blob([byteArray], { type: "application/pdf" }); // 生成临时下载链接并触发下载 const downloadUrl = URL.createObjectURL(pdfBlob); const link = document.createElement("a"); link.href = downloadUrl; link.download = fileName; document.body.appendChild(link); link.click(); // 清理临时资源 document.body.removeChild(link); URL.revokeObjectURL(downloadUrl); } // 调用示例:替换成你已有的Base64数据 const pdfBase64Data = "这里替换成你的Base64字符串"; downloadBase64AsPDF(pdfBase64Data, "自定义文件名.pdf");
关键说明:
- 前缀处理:如果你的Base64字符串开头带有
data:application/pdf;base64,,代码会自动移除,确保解码正常 - 内存清理:下载完成后会主动销毁临时DOM元素和URL对象,避免浏览器内存占用过高
- 兼容性:支持所有现代浏览器,无需额外依赖库
内容的提问来源于stack exchange,提问作者Abdul_Al Joboyer-chy
相关产品推荐
相关产品推荐

