Puppeteer-PDF:当我尝试生成PDF时,节点挂起

问题描述

我使用Puppeteer生成PDF文件。在我的笔记本电脑(Windows 10)中,它工作得很好,但是在服务器(Windows Server 2012 R2)中,当尝试生成PDF时它挂起,并以超时错误结束。

在这里设置变量,然后调用generatePdf()函数

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]);
    });

以及使用Puppeteer生成PDF的功能

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 (将#修改为@)