Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Before taking a Puppeteer screenshot, wait for the page’s font set with await page.evaluate(() => document.fonts.ready). Puppeteer waits for the promise returned by page.evaluate(), so the capture starts after the browser has finished the relevant font-loading and layout work.

Wait for fonts, then take the screenshot

Navigate to the page and let it apply the styles and content that use the web font. Then await document.fonts.ready in the page context before calling page.screenshot():

await page.goto(url);
await page.evaluate(() => document.fonts.ready);
await page.screenshot({ path: 'page.png' });

document.fonts is the document’s FontFaceSet. Its ready promise resolves when font loading and layout operations are complete and no further font loads are needed. Puppeteer’s Page.evaluate() waits for a returned promise to resolve. MDN explains the readiness promise, and Puppeteer documents promise handling in Page.evaluate().

With a navigation wait condition

You can also wait for a navigation condition before checking fonts:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
Philips 24 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 241V8LB
  • CRISP CLARITY: This 23.8″ Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
  • WORK SEAMLESSLY: This sleek monitor is virtually bezel-free on three sides, so the screen looks even bigger for the viewer. This minimalistic design also allows for seamless multi-monitor setups that enhance your workflow and boost productivity
  • A BETTER READING EXPERIENCE: For busy office workers, EasyRead mode provides a more paper-like experience for when viewing lengthy documents
await page.goto(url, { waitUntil: 'networkidle2' });
await page.evaluate(() => document.fonts.ready);
await page.screenshot({ path: 'screenshot.png', fullPage: true });

networkidle2 is a navigation condition, not a replacement for waiting on the font set. A page can reach that condition while font readiness still needs to be checked. Puppeteer’s screenshot guide shows navigation followed by Page.screenshot().

When to request a particular font explicitly

Usually, the page’s CSS and content trigger the font request; waiting for document.fonts.ready is then appropriate. If the page has not yet used the desired face, or the capture must include a particular family and text, explicitly request matching faces with document.fonts.load(), then wait for readiness:

Rank #2
Philips 22 Inch Computer Monitor FHD 100Hz VA VESA Flicker-Free, 221V8LB
  • CRISP CLARITY: This 22 inch class (21.5″ viewable) Philips V line monitor delivers crisp Full HD 1920x1080 visuals. Enjoy movies, shows and videos with remarkable detail
  • 100HZ FAST REFRESH RATE: 100Hz brings your favorite movies and video games to life. Stream, binge, and play effortlessly
  • SMOOTH ACTION WITH ADAPTIVE-SYNC: Adaptive-Sync technology ensures fluid action sequences and rapid response time. Every frame will be rendered smoothly with crystal clarity and without stutter
  • INCREDIBLE CONTRAST: The VA panel produces brighter whites and deeper blacks. You get true-to-life images and more gradients with 16.7 million colors
  • THE PERFECT VIEW: The 178/178 degree extra wide viewing angle prevents the shifting of colors when viewed from an offset angle, so you always get consistent colors
await page.evaluate(async () => {
  await document.fonts.load('16px "Example Sans"', 'Sample text 123');
  await document.fonts.ready;
});
await page.screenshot({ path: 'page.png' });

Replace Example Sans with the family name used by the page’s CSS, and choose representative text containing the characters needed in the screenshot. The text argument limits matching based on Unicode ranges; it does not verify that every requested glyph is available. FontFaceSet.load() returns a promise that fulfills with loaded font faces or rejects if a font fails. See MDN’s FontFaceSet.load() reference.

What font readiness does—and does not—guarantee

document.fonts.ready tells you that font loading and layout work for the document have settled. It does not prove that a particular CSS family was selected for the captured text or that a specific font resource loaded successfully. Some declared faces may remain unloaded if they are not used, including optional fonts that did not load in time. The browser may therefore be ready while text still renders in a fallback font. See MDN’s description of FontFaceSet.ready and its FontFaceSet reference.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Dell 24 Monitor - SE2426H - 23.8-inch FHD (1920x1080) 144Hz 1ms Display, in-Plane Switching (IPS) Technology, AMD FreeSync™, TÜV 3-Star 2X HDMI, Tilt
  • Clear visuals. Fluid motion: A 144Hz refresh rate and 1ms MPRT deliver smooth, tear‑free motion across work, gaming, and streaming for clearer, more fluid viewing.
  • Eye comfort: TÜV Rheinland 3‑star* certification reduces harmful blue light while preserving stunning color quality without compromise. *TÜV Rheinland 3-star eye comfort certification.
  • Wide viewing angle: Get consistent views across a wide 178° /178° viewing angle.
  • In-Plane Switching (IPS): See excellent color accuracy and consistency across wide viewing angles with In-plane Switching (IPS) technology.
  • Ultra-thin bezels: Maximize your viewing experience with thin bezels.

Screenshot and PDF font options are different

Puppeteer documents waitForFonts as a PDFOptions setting. It defaults to true for PDF generation and waits for document.fonts.ready; its documentation notes that bringing a page to the foreground with Page.bringToFront() may be necessary when it is in the background. This is PDF-specific guidance. Do not pass waitForFonts as a screenshot option: the documented PDF options and screenshot API are separate.

Troubleshoot fallback fonts in the screenshot

  • The screenshot still uses a fallback: inspect the element’s computed font-family and confirm the intended face applies to the captured text. A completed document.fonts.ready promise does not establish that CSS selected the font you expected.
  • The intended face has not been requested: call document.fonts.load() with the page’s actual CSS font shorthand and representative text, then await document.fonts.ready.
  • The font request fails: handle a rejection from document.fonts.load() and check the font resource and page configuration. The browser promise cannot make an unavailable or failed font render successfully.
  • A face remains unloaded: check whether the captured content actually uses it. Declared but unused faces need not load before the font set becomes ready.

Or skip the browser setup

For a one-call capture, ScreenshotNeo provides a website screenshot API. Its API returns a screenshot or PDF; the call below requests a WebP capture of https://stripe.com. See the ScreenshotNeo API documentation for request options.

Rank #4
Sale
Samsung 27" Essential S3 (S36GD) Series FHD 1800R Curved Computer Monitor
  • CURVED FOR ENHANCED ENGAGEMENT: An immersive viewing experience with a curved monitor that wraps more closely around your field of vision; It creates a wider view, enhancing depth perception and minimizing peripheral distraction
  • SMOOTH PERFORMANCE FOR SEAMLESS CONTENT: Stay in the action when playing games, watching videos, or working on creative projects; The 100Hz refresh rate reduces lag and motion blur so you don't miss a thing in fast-paced moments¹
  • MORE GAMING POWER: Gain the edge with optimizable game settings; Color and image contrast can be adjusted to see scenes more vividly and spot enemies hiding in the dark; Game Mode adjusts any game to fill the screen so you can view every detail²
  • KEEP IT EASY ON THE EYES: Care for your eyes and stay comfortable, even during long sessions; Advanced eye comfort technology certified by TÜV reduces eye strain by minimizing blue light and reducing irritating screen flicker²
  • INCREASED VERSATILITY: Connect to more; Plug devices straight into your monitor for increased flexibility, making your computing environment even more convenient
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
  • It accepts cookie or consent banners like a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each cleanup step can be turned off.
  • Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. Responses indicate the page verdict and billing status in headers.
  • An MCP server gives AI agents tools for screenshots, page information, and PDF capture.
  • The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots.

Sign up free for 1,000 screenshots a month with no card.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Frequently Asked Questions

Does Puppeteer’s screenshot API support `waitForFonts`?

The documented `waitForFonts` option belongs to PDF generation, not the screenshot API. For screenshots, await `document.fonts.ready` in `page.evaluate()` before capturing.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Sale
Sceptre New 22-Inch Gaming Monitor, FHD 1080p, Up to 144Hz, HDMI, DisplayPort, Built-in Speakers, Machine Black (E225W-FW144 Series, 2026)
  • 【INTEGRATED SPEAKERS】Whether you're at work or in the midst of an intense gaming session, our built-in speakers provide rich and seamless audio, all while keeping your desk clutter-free.
  • 【EASY ON THE EYES】 Protect your eyes and enhance your comfort with Blue-Light Shift technology. This feature reduces harmful blue light emissions from your screen, helping to alleviate eye strain during long hours of use and promoting healthier viewing habits.
  • 【WIDEN YOUR PERSPECTIVE】Our sleek minimal bezel design ensures undivided attention. The nearly bezel-free display seamlessly connects in a dual monitor arrangement, delivering an unobstructed view that lets you focus on more at once, completely distraction-free.

Does `document.fonts.ready` ensure every declared font has loaded?

No. It resolves after the document’s needed font loading and layout work settles; declared faces that are not used may remain unloaded.

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.