首页 > 解决方案 > 在 ReactJS/Javascript 中将 Base64 转换为 PDF 文件时遇到错误

问题描述

我正在努力在 ReactJS 中将 PDF 显示为附件。我已经设法将base64带到前端,但是在我尝试创建blob对象后它不起作用,虽然它进入了Acrobat阅读器但显示了错误。请提供任何建议,如我如何正确地将 base64 转换为 pdf。

我还上传了在 pastebin 控制台登录时得到的 base64 代码,https ://pastebin.com/W4zEXyPy

注意: 当我尝试在https://base64.guru/进行修复时,它显示无效的字符串和字符(数据:应用程序/pdf;),我尝试使用content.slice(29);它,因此它将从JVB...(而不是从data:application/pdf;base64,JVBERi0xL........)开始,但得到相同错误。 链接到修复 Base64 的图片 atbase64guru

Error:未正确解码


    let generateFile = (content, fileName) => {
    
        console.log("content", content); // here at console if i copy the code and use online tool(https://base64.guru/converter/decode/pdf) it shows the correct pdf

        let content1= content.slice(29);// content1 is correct base64 as if i use it online tool it correctly generate the PDF document
        const blob = new Blob([content1], { type: "application/pdf" });
        console.log(blob);
        const link = document.createElement("a");
        link.href = window.URL.createObjectURL(blob);
        link.download = fileName;
        link.click();
      };

标签: javascriptreactjspdfpdf-generationblob

解决方案


一个简单的console.log(content.slice(29))可能会暴露你的错误。问题是该content1变量包含一个以“VBE...”开头的字符串,而它必须以“JVBE...”开头。因此,您的错误是该slice()函数丢弃了太多字符。


推荐阅读