Base64 是一种用于编码二进制数据为 ASCII 字符串的方法,常用于在文本协议中传输二进制数据。PDF(Portable Document Format)是一种用于创建和共享文档的文件格式。
以下是一个使用 JavaScript 将 Base64 字符串转换为 PDF 文件并下载的示例:
function base64ToPdf(base64String, fileName) {
// 创建一个 Blob 对象
const byteCharacters = atob(base64String);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], { type: 'application/pdf' });
// 创建一个下载链接并触发下载
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = fileName;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
// 示例使用
const base64Pdf = 'data:application/pdf;base64,JVBERi0xLjQKJd...'; // 这里填入你的 Base64 编码的 PDF 数据
base64ToPdf(base64Pdf.split(',')[1], 'output.pdf');
原因:Base64 字符串可能包含非法字符或格式不正确。
解决方法:
atob
函数进行解码前,可以先验证字符串是否符合 Base64 规范。function isValidBase64(str) {
try {
return btoa(atob(str)) === str;
} catch (err) {
return false;
}
}
原因:Base64 字符串可能不完整或损坏。
解决方法:
原因:某些浏览器可能不支持 Blob
或 URL.createObjectURL
。
解决方法:
通过以上方法,可以有效解决 Base64 转 PDF 过程中可能遇到的问题。
领取专属 10元无门槛券
手把手带您无忧上云