Настройки окна просмотра Puppeteer, не влияющие на создание PDF - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь создать PDF с помощью кукловода. Настройка области просмотра при создании PDF не влияет вообще. Тем не менее, настройки области просмотра применяются к скриншотам Похоже, в прошлом на github были выявлены некоторые проблемы, но они, по-видимому, были закрыты. Передача в defaultViewport: предположительно, null был решением.

Вот мой код:

browser = await chromium.puppeteer.launch({
    args: chromium.args,
    defaultViewport: null,
    executablePath: await chromium.executablePath,
    ignoreHTTPSErrors: true,
    headless: true,
});

let page = await browser.newPage();

// Set viewport
await page.setViewport({width: 1440, height: 900, deviceScaleFactor: 2});

// Generate pdf
const doc = await page.pdf(options);

Я также попытался передать настройки окна просмотра при запуске.

Спасибо!

1 Ответ

0 голосов
/ 28 января 2020

page.pdf эмулирует действие «Печать в PDF». Это означает две вещи: во-первых, печать на носителе , а во-вторых, вам необходимо передать указанный c формат или размер в функцию pdf.

Из документации :

Опции width, height и margin принимают значения, помеченные единицами. Значения без меток обрабатываются как пиксели.

Несколько примеров:
* page.pdf({width: 100}) - печать с шириной, установленной на 100 пикселей.
* page.pdf({width: '100px'}) - печать с шириной, установленной на 100 пикселей.
* page.pdf({width: '10cm'}) - отпечатки шириной 10 сантиметров.

Возможны следующие единицы:
* px - пиксель
* in - дюйм
* cm - сантиметр
* mm - миллиметр

Варианты format:
* Letter: 8,5 x 11 дюймов
* Legal: 8,5 x 14 дюймов
* Tabloid: 11 дюймов x 17 дюймов
* Ledger: 17 дюймов x 11 дюймов
* A0: 33,1 x 46,8 дюймов
* A1: 23,4 дюймов x 33,1 дюймов
* A2: 16,54 х 23,4 дюйма
* A3: 11,7 х 16,54 дюйма
* A4: 8,27 х 11,7 дюйма
* A5: 5,83 х 8,27 дюйма
* A6: 4,13 дюйма x 5,83 дюйма

...