如何在 Puppeteer 中访问 PageNumber 和 TotalPages 变量

Jar*_*zzy 6 javascript pdf-generation node.js puppeteer

所以我从 URLS 生成多个 PDF,然后我使用 easy-pdf-merge 来组合这些 PDF,

我希望能够更新每个页脚中的 pageNumber 和 totalPages,所以我想获得第一个 PDF totalPages 和页码并将其保存在一个变量中,然后创建的每个 PDF 都将使用我创建的新变量+ 上一个 pageNumber 和 totalPages。“搜索页码”,您将找到选项。 https://pptr.dev/#?product=Puppeteer&version=v1.19.0&show=api-class-page

这可能吗?我在 pdf.options 中看到有 totalPages 和 pageNumber 选项。

const puppeteer = require('puppeteer');

class Webpage {
    static async generatePDF(url) {
        const browser = await puppeteer.launch({ headless: true }); // Puppeteer can only generate pdf in headless mode.
        const page = await browser.newPage();

        await page.goto(url); // Adjust network idle as required. 
        const pdfConfig = {
            path: 'home.pdf', // Saves pdf to disk. 
            // format: 'A4',
            printBackground: true,
            margin: { // Word's default A4 margins
                top: '2.54cm',
                bottom: '2.54cm',
                left: '2.54cm',
                right: '2.54cm'
            },
            width: 1860,
            height: 2631

        };
        await page.emulateMedia('screen');
        const pdf = await page.pdf(pdfConfig); // Return the pdf buffer. Useful for saving the file not to disk. 

        await browser.close();

        return pdf;
    }
}

(async() => {
    const url = ['https://google.com/'];
    // doing some checks here to get more than 1 url
    if(url > 1){
        for(i=0;i<url.length;i++){
                await Webpage.generatePDF(url[i]);
        }
    }
})();
Run Code Online (Sandbox Code Playgroud)

我做了一些挖掘,发现这个问题如何在 Puppeter 的 page.pdf API 中打印页眉和页脚?

这对了解当时的 puppeteer 正在发生的事情有很大帮助,它似乎使用了 Skia,而后者又使用了 chrome 工具,这就是页码的最终来源。

https://chromedevtools.github.io/devtools-protocol/tot/Page#method-printToPDF

但我仍然不知道如何保存和使用这个变量来完成我想做的事情。