feat(page): add 'preferCSSPageSize' to page.pdf options (#2928)

Fixes #1963.
This commit is contained in:
Fred Chasen 2018-07-26 18:51:44 -07:00 committed by Andrey Lushnikov
parent 78ebf401c2
commit 12e3510eca
2 changed files with 4 additions and 1 deletions

View File

@ -1277,6 +1277,7 @@ Page is guaranteed to have a main frame which persists during navigations.
- `right` <[string]> Right margin, accepts values labeled with units.
- `bottom` <[string]> Bottom margin, accepts values labeled with units.
- `left` <[string]> Left margin, accepts values labeled with units.
- `preferCSSPageSize` <[boolean]> Give any CSS `@page` size declared in the page priority over what is declared in `width` and `height` or `format` options. Defaults to `false`, which will scale the content to fit the paper size.
- returns: <[Promise]<[Buffer]>> Promise which resolves with PDF buffer.
> **NOTE** Generating a pdf is currently only supported in Chrome headless.

View File

@ -889,6 +889,7 @@ class Page extends EventEmitter {
const marginLeft = convertPrintParameterToInches(marginOptions.left) || 0;
const marginBottom = convertPrintParameterToInches(marginOptions.bottom) || 0;
const marginRight = convertPrintParameterToInches(marginOptions.right) || 0;
const preferCSSPageSize = options.preferCSSPageSize || false;
const result = await this._client.send('Page.printToPDF', {
landscape: landscape,
@ -903,7 +904,8 @@ class Page extends EventEmitter {
marginBottom: marginBottom,
marginLeft: marginLeft,
marginRight: marginRight,
pageRanges: pageRanges
pageRanges: pageRanges,
preferCSSPageSize: preferCSSPageSize
});
const buffer = Buffer.from(result.data, 'base64');
if (options.path)