我正在尝试通过使用puppeteer将html网页转换为pdf文件。它正在将html网页转换为pdf文件,但问题是page.goto
在完成其工作后没有停止。发生这种情况时,我从中运行该localhost服务器的终端变得有点无响应。我也将其部署在heroku上,但是当我访问该URL时,服务器会以错误代码503响应我,并且该服务器未将其转换为pdf。
let printPDF = async () => {
try {
const browser = await puppeteer.launch({ headless: true});
const page = await browser.newPage();
await page.goto('http://localhost:3000/preview')
await page.pdf({ format: 'A4' , path: `${__dirname}/contact.pdf`, printBackground: true});
await page.close();
await browser.close();
console.log("repeat") //logging to see its repetition
}
catch (error) {
await page.close();
await browser.close();
}
}
getReviewPage = ((req, res) => {
printPDF()
res.sendFile(`${__dirname}/form.html`)
})
app.route('/preview').get(getReviewPage);
由于printPDF
是一个返回Promise的异步函数,因此您需要等待它完成,例如then
:
const getReviewPage = (req, res) => {
printPDF().then(() => res.sendFile(`${__dirname}/form.html`)
}