Recommended Free Tools
Set PDF margins with the margin option passed to page.pdf(). Give each edge—top, right, bottom, and left—a value. For predictable physical measurements, use strings with explicit units, such as '20mm'.
Set the four margins in page.pdf()
This example selects A4 paper and gives the top and bottom more space than the sides:
await page.pdf({
format: 'A4',
margin: {
top: '20mm',
right: '15mm',
bottom: '20mm',
left: '15mm',
},
path: 'output.pdf',
});
The margin object has optional edge fields, and each accepts a string or number. Puppeteer documents the option’s default as undefined, meaning no margins are set; do not rely on an assumed default print margin. Explicit-unit strings make the intended physical measurement clear. See the Puppeteer PDFOptions reference and PDFMargin reference.
Use equal margins
For a simple layout, provide the same value on all four edges:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
#1 Best Overall
- 1 ream (500 sheets) of 8.5 x 11 white copier and printer paper for home or office use
- Multipurpose letter size copy paper works with laser/inkjet printers, copiers and fax machines
- Smooth 20lb weight paper for consistent ink and toner distribution; dries quickly and resists paper jams
- Bright white paper (92 GE; 104 Euro) offers great contrast for crisp printing and vivid color
- Virgin copy paper providing professional quality results; acid-free to prevent yellowing
await page.pdf({
format: 'Letter',
margin: {
top: '0.5in',
right: '0.5in',
bottom: '0.5in',
left: '0.5in',
},
path: 'output.pdf',
});
Set edges independently
Use different values when the document needs more room for a header or footer, or when the layout calls for extra space along one side. The API supports separate values; the right measurements depend on the document and its intended use.
Choose the page size separately from margins
Margins control the space at the page edges; they do not select paper size. Puppeteer’s default format is Letter. You can select a format such as Letter or A4, or define dimensions with width and height. If you provide format, it takes priority over width and height. Letter is 8.5 × 11 inches, while A4 is 210 × 297 millimeters, according to Puppeteer’s PaperFormat reference.
Rank #2
- HP Papers is sourced from renewable forest resources and has achieved production with 0% deforestation in North America. Each ream is wrapped in a polyurethane coated paper wrapper to protect the cut sheets from moisture damage
- Sheet size – 8.5 x 11; Thickness – 20 pounds; Brightness – 92 bright white
- HP Copy&Print20 20 pounds printer paper is Forest Stewardship Council (FSC) certified and contributes toward satisfying credit MR1 under LEED (Leadership in Energy and Environmental Design)
- All HP Papers provide premium performance on HP equipment, as well as on all other printer and copier equipment; 100% satisfaction guaranteed; ColorLok technology provides more vivid colors, bolder blacks and faster drying
- Superior quality, reliability, and dependability for high-volume printing at home, at school and in the office; HP Copy&Print20 print and copy paper prevents yellowing over time to ensure a long-lasting appearance for added archival quality
If the page’s CSS should determine the paper size, define it with @page and set preferCSSPageSize: true. That option defaults to false; at its default, a CSS @page size is scaled to fit the paper size specified in the PDF options. When true, CSS page size takes priority over width, height, or format. This documented precedence concerns page size; it does not establish a universal precedence rule for conflicts between the API’s margin and CSS @page margins.
Account for print CSS
page.pdf() renders with print CSS media, not screen media. A print stylesheet can therefore change layout or visibility compared with what you see in a browser window. Puppeteer’s Page.pdf() documentation describes PDF generation as using the print CSS media type.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Rank #3
- 3 ream case (1,500 sheets) of 8.5 x 11 white copier and printer paper for home or office use
- Multipurpose letter size copy paper works with laser/inkjet printers, copiers and fax machines
- Smooth 20lb weight paper for consistent ink and toner distribution; dries quickly and resists paper jams
- Bright white paper (92 GE; 104 Euro) offers great contrast for crisp printing and vivid color
- Virgin copy paper providing professional quality results; acid-free to prevent yellowing
If you intentionally want screen styles, call page.emulateMediaType('screen') before generating the PDF:
await page.emulateMediaType('screen');
await page.pdf({
format: 'A4',
margin: { top: '20mm', right: '15mm', bottom: '20mm', left: '15mm' },
path: 'output.pdf',
});
Troubleshoot unexpected margins or layout
- The page has no margin: Check that
marginis present in the options passed topage.pdf(). Its documented default is undefined, meaning no margins are set. - The paper size is unexpected: Check whether
formatis overridingwidthorheight. If CSS should control the size, define@pageand enablepreferCSSPageSize. - The PDF differs from the browser view: Check print-specific CSS, since PDF generation uses print media by default. Switch to screen media only if that is the intended rendering.
- CSS and API margins conflict: The cited Puppeteer API references do not establish a general precedence rule for that conflict. Check the output with the Puppeteer and Chrome versions used by your application rather than assuming which declaration wins.
Or skip the browser setup
ScreenshotNeo can return a PDF from one GET request. It accepts cookie or consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers report the page verdict and billing status. Its MCP server provides screenshot and PDF tools for AI agents. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000.
Example request, adapted to generate a PDF:
curl -G "https://api.screenshotneo.com/v1/shot"
-d access_key=YOUR_API_KEY
--data-urlencode url=https://stripe.com
-d format=pdf
-o output.pdf
See the ScreenshotNeo documentation for request options, including PDF paper size, margins, landscape orientation, and page ranges. For a Puppeteer-specific PDF workflow, use ScreenshotNeo as an API alternative; its PDF options are not Puppeteer’s page.pdf() configuration.
Rank #4
- 5 ream case (2,500 sheets) of 8.5 x 11 white copier and printer paper for home or office use
- Multipurpose letter size copy paper works with laser/inkjet printers, copiers and fax machines
- Smooth 20lb weight paper for consistent ink and toner distribution; dries quickly and resists paper jams
- Bright white paper (92 GE; 104 Euro) offers great contrast for crisp printing and vivid color
- Virgin copy paper providing professional quality results; acid-free to prevent yellowing
Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Frequently Asked Questions
Does Puppeteer add default PDF margins?
No. The documented margin default is undefined, which means no margins are set.
Best Value
- 8 ream case (4,000 sheets) of 8.5 x 11 white copier and printer paper for home or office use
- Multipurpose letter size copy paper works with laser/inkjet printers, copiers and fax machines
- Smooth 20lb weight paper for consistent ink and toner distribution; dries quickly and resists paper jams
- Bright white paper (92 GE; 104 Euro) offers great contrast for crisp printing and vivid color
- Virgin copy paper providing professional quality results; acid-free to prevent yellowing
Can CSS choose the PDF paper size?
Yes. Define the size in CSS @page and set preferCSSPageSize: true.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

