Полная страница PDF в Puppeteer - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь получить полную страницу PDF, используя puppeteer, и мой код выглядит следующим образом, но в результате получается несколько страниц с высотой, равной высоте страницы.

Как мне решить эту проблему??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 Ответ

1 голос
/ 10 апреля 2019

На странице , на которую вы ссылались , используется Bootstrap, для которой установлено следующее правило (вы можете найти его здесь ):

@page{size:a3}

Это ограничит высоту страницы размером a3.

Вы можете удалить правило (или Bootstrap в целом) с веб-сайта или добавить следующий код перед вызовом page.pdf:

await page.addStyleTag({
    content: '@page { size: auto; }',
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...