【发布时间】:2021-06-19 05:23:33
【问题描述】:
我有一个 node js 应用程序,它创建了我希望用户下载的动态内容。
static async downloadPDF(res, html, filename) {
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage()
await page.setContent(html, {
waitUntil: 'domcontentloaded'
})
const pdfBuffer = await page.pdf({
format: 'A4'
});
res.set("Content-Disposition", "attachment;filename=" + filename + ".pdf");
res.setHeader("Content-Type", "application/pdf");
res.send(pdfBuffer);
await browser.close()
}
创建一个大小约为 100kb 的 pdf 文件大约需要 10 秒,因此有没有办法加快整个过程? 我在某处读到我可以启动一次无头浏览器,然后我只会创建一个新页面,而不是在每次请求文件时启动浏览器。 我找不到正确的方法。
【问题讨论】:
标签: html node.js pdf-generation puppeteer