2022-07-05 13:41:43 +00:00
---
sidebar_label: PDFOptions
---
# PDFOptions interface
Valid options to configure PDF generation via [Page.pdf() ](./puppeteer.page.pdf.md ).
2022-10-24 07:07:05 +00:00
#### Signature:
2022-07-05 13:41:43 +00:00
```typescript
export interface PDFOptions
```
## Properties
2024-03-20 15:03:14 +00:00
< table > < thead > < tr > < th >
Property
< / th > < th >
Modifiers
< / th > < th >
Type
< / th > < th >
Description
< / th > < th >
Default
< / th > < / tr > < / thead >
< tbody > < tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "displayheaderfooter" > displayHeaderFooter< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
Whether to show the header and footer.
< / td > < td >
`false`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "footertemplate" > footerTemplate< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
string
< / td > < td >
2024-04-11 11:01:13 +00:00
HTML template for the print footer. Has the same constraints and support for special classes as [PDFOptions.headerTemplate ](./puppeteer.pdfoptions.md#headertemplate ).
2024-03-20 15:03:14 +00:00
< / td > < td >
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "format" > format< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
[PaperFormat ](./puppeteer.paperformat.md )
< / td > < td >
2024-04-29 12:50:39 +00:00
**Remarks:**
If set, this takes priority over the `width` and `height` options.
2024-03-20 15:03:14 +00:00
< / td > < td >
`letter` .
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "headertemplate" > headerTemplate< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
string
< / td > < td >
HTML template for the print header. Should be valid HTML with the following classes used to inject values into them:
- `date` formatted print date
- `title` document title
- `url` document location
- `pageNumber` current page number
- `totalPages` total pages in the document
< / td > < td >
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "height" > height< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
string \| number
< / td > < td >
Sets the height of paper. You can pass in a number or a string with a unit.
< / td > < td >
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "landscape" > landscape< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
Whether to print in landscape orientation.
< / td > < td >
`false`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "margin" > margin< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
[PDFMargin ](./puppeteer.pdfmargin.md )
< / td > < td >
Set the PDF margins.
< / td > < td >
`undefined` no margins are set.
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "omitbackground" > omitBackground< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
Hides default white background and allows generating pdfs with transparency.
< / td > < td >
`false`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "outline" > outline< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
2024-04-29 12:50:39 +00:00
**_(Experimental)_** Generate document outline.
**Remarks:**
If this is enabled the PDF will also be tagged (accessible) Currently only works in old Headless (headless = 'shell') [Chromium feature request ](https://issues.chromium.org/issues/41387522#comment48 )
2024-03-20 15:03:14 +00:00
< / td > < td >
`false`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "pageranges" > pageRanges< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
string
< / td > < td >
Paper ranges to print, e.g. `1-5, 8, 11-13` .
< / td > < td >
The empty string, which means all pages are printed.
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "path" > path< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
string
< / td > < td >
The path to save the file to.
2024-04-29 12:50:39 +00:00
**Remarks:**
If the path is relative, it's resolved relative to the current working directory.
2024-03-20 15:03:14 +00:00
< / td > < td >
`undefined` , which means the PDF will not be written to disk.
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "prefercsspagesize" > preferCSSPageSize< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
Give any CSS `@page` size declared in the page priority over what is declared in the `width` or `height` or `format` option.
< / td > < td >
`false` , which will scale the content to fit the paper size.
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "printbackground" > printBackground< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
Set to `true` to print background graphics.
< / td > < td >
`false`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "scale" > scale< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
number
< / td > < td >
Scales the rendering of the web page. Amount must be between `0.1` and `2` .
< / td > < td >
`1`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "tagged" > tagged< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
boolean
< / td > < td >
2024-04-29 12:50:39 +00:00
**_(Experimental)_** Generate tagged (accessible) PDF.
2024-03-20 15:03:14 +00:00
< / td > < td >
`true`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "timeout" > timeout< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
number
< / td > < td >
Timeout in milliseconds. Pass `0` to disable timeout.
< / td > < td >
`30_000`
< / td > < / tr >
< tr > < td >
2024-04-11 11:01:13 +00:00
< span id = "width" > width< / span >
2024-03-20 15:03:14 +00:00
< / td > < td >
`optional`
< / td > < td >
string \| number
< / td > < td >
Sets the width of paper. You can pass in a number or a string with a unit.
< / td > < td >
< / td > < / tr >
< / tbody > < / table >