gpt4 book ai didi

javascript - 如何在前端将缓冲区转换为 pdf

转载 作者:行者123 更新时间:2023-12-02 02:18:17 25 4
gpt4 key购买 nike

我使用 Puppeteer 生成一个包含 pdf 信息的缓冲区并将其发送到前端。这是后端 api:

exports.getPDF = async (req, res) => {
const { content } = req.query;
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(`
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>HTML to PDF Example</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
${content}
</body>
</html>
`);
const buffer = await page.pdf();
await browser.close();

return res.apiResponse(buffer);
};

然后我尝试将缓冲区转换为pdf文件并打开它但失败了,它说无法加载PDF文档。

我在前端做了什么:

await dispatch({
type: 'resume/fetchResumePDF',
payload: {
content: resumeContent
}
});
console.log(this.props.resumePDF);

const file = new Blob(this.props.resumePDF.data, {
type: 'application/pdf'
});
const getFile = file && window.URL.createObjectURL(file);
window.open(getFile, "_blank");

console.log 缓冲区如下:

enter image description here

最佳答案

这在创建新 Blob 时对我有用。我能够以这种方式使用 Shankar 的代码。

new Blob([new Uint8Array(this.props.resumePDF.data).buffer]);

// e.g. pass the array - new Blob([new Uint8Array([1,2,3,4]).buffer]);
const url = window.URL.createObjectURL(new Blob([new Uint8Array(this.props.resumePDF.data).buffer]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'yourcoolpdf.pdf');
document.body.appendChild(link);
link.click();

关于javascript - 如何在前端将缓冲区转换为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66842000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com