Node.js 木偶演员不渲染AWS S3上存储的图像
我正在Nodejs上使用puppeter通过页面呈现PDF文档。但是,似乎无法加载AWS S3上托管的图像,而本地存储在服务器上的图像本身可以正常加载 我尝试添加了Node.js 木偶演员不渲染AWS S3上存储的图像,node.js,express,puppeteer,Node.js,Express,Puppeteer,我正在Nodejs上使用puppeter通过页面呈现PDF文档。但是,似乎无法加载AWS S3上托管的图像,而本地存储在服务器上的图像本身可以正常加载 我尝试添加了waitUntil:“networkidle0”和waitUntil:“networkidle1”,但仍然不起作用。我还尝试添加printBackground:true 这是我的代码: (async () => { const browser = await puppeteer.launch({ arg
waitUntil:“networkidle0”
和waitUntil:“networkidle1”
,但仍然不起作用。我还尝试添加printBackground:true
这是我的代码:
(async () => {
const browser = await puppeteer.launch({
args: ["--no-sandbox"]
});
const page = await browser.newPage();
await page.setExtraHTTPHeaders({
authorization: req.session.token
});
await page.goto(config.url + "/project/download/" + permalink, {
waitUntil: "networkidle0"
});
const buffer = await page.pdf({
filename: permalink + "_ProjectBrief" + ".pdf",
format: "A4",
margin: {
top: 60,
bottom: 60,
left: 60,
right: 50
},
});
res.type("application/pdf");
res.send(buffer);
await browser.close();
})();
你知道我该怎么解决这个问题吗
提前谢谢 我想我解决了这个问题 添加
headless:false后
const browser = await puppeteer.launch({
args: ["--no-sandbox"]
});
我意识到图像没有加载是因为400错误。我的假设是Chromium没有足够的时间下载图像,因此抛出了这个错误
我所做的是编辑我希望Puppeter呈现的HTML文件,并向其中添加以下代码:
data.ProjectImages.forEach(e => {
window.open(e.imageUrl, '_blank');
});
它通过URL将图像打开到一个新选项卡上。这确保图像下载到Chromium实例(Puppeter运行Chromium)
渲染的PDF现在可以显示图像