Puppeteer中的整页PDF

时间:2019-04-10 10:45:15

标签: javascript node.js pdf puppeteer

我正在尝试使用puppeteer获取整页PDF,而我的代码是这样的, 但是结果是多个页面,其高度等于页面的高度。

我该如何解决? TIA。

const puppeteer = require("puppeteer");

function sleep(ms) {
    return new Promise(resolve => {
        setTimeout(resolve, ms);
    });
}

(async () => {
    const browser = await puppeteer.launch({
        headless: true
    });

    const page = await browser.newPage();

    await page.goto("http://localhost:3000/longpage", {
        waitUntil: "networkidle2"
    });

    let height = await page.evaluate(
        () => document.documentElement.offsetHeight
    );

    console.log("Height", height);

    await page.pdf({
        path: "hni.pdf",
        printBackground: true,
        margin: "none",
        height: height + "px"
    });

    await browser.close();
})();

1 个答案:

答案 0 :(得分:1)

page you linked使用Bootstrap,它具有以下规则(您可以找到here):

@page{size:a3}

这会将页面的高度限制为a3的大小。

您可以从网站上删除规则(或完全删除Bootstrap),也可以在调用page.pdf之前添加以下代码:

await page.addStyleTag({
    content: '@page { size: auto; }',
})