问题描述
我使用Puppeteer生成PDF文件。在我的笔记本电脑(Windows 10)中,它工作得很好,但是在服务器(Windows Server 2012 R2)中,当尝试生成PDF时它挂起,并以超时错误结束。
let html = '<html here....>';
pathPdf = 'c:\path\file.pdf'
const pdf=this.generatePdf();
pdf.then(
function (){
res.status(200).send([{path: pathPdf}]);
})
.catch(
function(val){
res.status(500).send([val.message,val]);
});
this.generatePdf = async function() {
return new Promise(async function(resolve,reject) {
try {
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage();
page.setContent(html);
//page.setDefaultNavigationTimeout(0)
const buffer = await page.pdf({
path: pathPdf,format: "A4",printBackground: true,displayheaderfooter: true,footerTemplate: `
<div style="font-size: 10px; padding-top: 5px; text-align: right; width: 100%; margin-right: 35px">
<span>Page</span> <span class="pageNumber"></span> de <span class="totalPages"></span>
</div>
`,margin: {
bottom: 70,// minimum required for footer msg to display
left: 25,right: 35,top: 30,},});
resolve();
console.log('Bufffer',buffer);
await browser.close();
//res.end(buffer);
console.log(buffer) // maybe do response(pdf).type('x-pdf')
} catch (e) {
console.log('Error',e);
reject(e);
}
});
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)