--- 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>