puppeteer/docs/api/puppeteer.pdfoptions.md
2024-04-29 14:50:39 +02:00

408 lines
4.5 KiB
Markdown

---
sidebar_label: PDFOptions
---
# PDFOptions interface
Valid options to configure PDF generation via [Page.pdf()](./puppeteer.page.pdf.md).
#### Signature:
```typescript
export interface PDFOptions
```
## Properties
<table><thead><tr><th>
Property
</th><th>
Modifiers
</th><th>
Type
</th><th>
Description
</th><th>
Default
</th></tr></thead>
<tbody><tr><td>
<span id="displayheaderfooter">displayHeaderFooter</span>
</td><td>
`optional`
</td><td>
boolean
</td><td>
Whether to show the header and footer.
</td><td>
`false`
</td></tr>
<tr><td>
<span id="footertemplate">footerTemplate</span>
</td><td>
`optional`
</td><td>
string
</td><td>
HTML template for the print footer. Has the same constraints and support for special classes as [PDFOptions.headerTemplate](./puppeteer.pdfoptions.md#headertemplate).
</td><td>
</td></tr>
<tr><td>
<span id="format">format</span>
</td><td>
`optional`
</td><td>
[PaperFormat](./puppeteer.paperformat.md)
</td><td>
**Remarks:**
If set, this takes priority over the `width` and `height` options.
</td><td>
`letter`.
</td></tr>
<tr><td>
<span id="headertemplate">headerTemplate</span>
</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>
<span id="height">height</span>
</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>
<span id="landscape">landscape</span>
</td><td>
`optional`
</td><td>
boolean
</td><td>
Whether to print in landscape orientation.
</td><td>
`false`
</td></tr>
<tr><td>
<span id="margin">margin</span>
</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>
<span id="omitbackground">omitBackground</span>
</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>
<span id="outline">outline</span>
</td><td>
`optional`
</td><td>
boolean
</td><td>
**_(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)
</td><td>
`false`
</td></tr>
<tr><td>
<span id="pageranges">pageRanges</span>
</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>
<span id="path">path</span>
</td><td>
`optional`
</td><td>
string
</td><td>
The path to save the file to.
**Remarks:**
If the path is relative, it's resolved relative to the current working directory.
</td><td>
`undefined`, which means the PDF will not be written to disk.
</td></tr>
<tr><td>
<span id="prefercsspagesize">preferCSSPageSize</span>
</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>
<span id="printbackground">printBackground</span>
</td><td>
`optional`
</td><td>
boolean
</td><td>
Set to `true` to print background graphics.
</td><td>
`false`
</td></tr>
<tr><td>
<span id="scale">scale</span>
</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>
<span id="tagged">tagged</span>
</td><td>
`optional`
</td><td>
boolean
</td><td>
**_(Experimental)_** Generate tagged (accessible) PDF.
</td><td>
`true`
</td></tr>
<tr><td>
<span id="timeout">timeout</span>
</td><td>
`optional`
</td><td>
number
</td><td>
Timeout in milliseconds. Pass `0` to disable timeout.
</td><td>
`30_000`
</td></tr>
<tr><td>
<span id="width">width</span>
</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>