我正在努力将PDF显示为ReactJS中的附件。我已经设法将base64带到前端,但是在我尝试创建blob对象之后,它不起作用,尽管它转到Acrobat阅读器,但显示了错误。如有任何建议,请告知如何将base64正确转换为pdf。
我还上传了base64代码,这是我在pastebin登录控制台时得到的,https://pastebin.com/W4zEXyPy
注意:当我试图在https://base64.guru/它显示无效的字符串和字符(数据:application/pdf;),我尝试使用内容。切片(29)
JVB
(而不是来自
数据:application/pdf;base64,JVBERi0xL……。
)但得到相同的错误。链接至修复Base64 atbase64guru的pic
错误:未正确解码
>
NodeJS baackend代码响应API调用
let token = req.cookies.access_token;
if (token) {
let Invoice_No_Actual = req.body.invoice_Name;
res.set("Content-disposition", "attachment; filename=" + `${__dirname}\\` + `${Invoice_No_Actual}` + `.pdf`);
res.contentType("application/pdf");
res.send(`data:application/pdf;base64,${new Buffer.from(data).toString("base64")}`);
}
});
前端代码API调用
const headers = new Headers();
headers.append("content-type", "application/json");
headers.append("responseType", "application/pdf");
const options = {
method: "POST",
headers,
credentials: "include",
body: JSON.stringify(invoice_Object),
// body: "My HTML String",
};
const newRequest = new Request("http://localhost:5000/api/invoice-only", options);
(async () => {
const invoice_Call = await fetch(newRequest)
.then((res) => {
return text1 = res.text();
})
.then((data) => {
generateFile(data, invoice_Name);
});
})();
};
generateFile()函数调用前端-在收到响应后
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();
};
打开PDF文件链接时出错错误图片
一个简单的控制台。日志(content.slice(29))
可能会泄露您的错误。问题是content1
变量包含一个以“VBE…”开头的字符串,而它必须以“JVBE…”开头。因此,您的错误是slice()
函数丢弃了太多的字符。
问题内容: 现在,我通过此行获取File对象: 我需要在base 64中通过json发送此文件。如何将其转换为base64字符串? 问题答案: 现代ES6方式 (异步/等待) UPD: 如果您想捕捉错误
我需要在Base64中通过json发送这个文件。我应该怎么做才能将它转换为base64字符串?
在我的应用程序中,我从AmazonS3: 错误为React的SyntheticBaseEvent: 我不知道我做错了什么。我知道你可以把pdf文件转换成Base64。任何帮助都将不胜感激。
我想把音频文件转换成base64只使用Javascript。 我们可以使用画布将图像转换为base64。但是我们如何转换音频文件。 任何帮助都将感激不尽。
为了将html转换为pdf,我使用了IText7的API convertToDocument,传递参数模板的ByteArrayInputStream、PDFDocument和ConvertProperties。 相关代码段: “PDF间接对象属于其他PDF文档。请将对象复制到当前PDF文档。” 转换属性的创建 在每次调用convertToDocument API之前创建对象 我是不是漏掉了什么?
问题内容: 按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我需要从现有的(X)HTML文档自动生成PDF文件。输入文件(报告)使用非常简单的基于表的布局,因此可能不需要支持真正精美的JavaScript / CSS。