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

Use Playwright’s screenshot API with fullPage: true and scale: 'device' when you need one image containing everything below the fold at device-pixel density. Full-page coverage and pixel density are separate settings: fullPage controls how much page is captured, while scale controls whether the output uses CSS pixels or device pixels.

If you prefer a graphical workflow, Firefox Developer Tools can save the entire page. For a managed API that removes consent banners, popups and chat widgets before capture, use ScreenshotNeo.

What “high-resolution full-page” actually means

A normal screenshot records only the current viewport. A full-page screenshot extends through the page’s scrollable height, including content below the fold. Resolution is a separate decision:

  • CSS-pixel scale: keeps output dimensions closer to the browser’s layout size and usually produces a smaller file.
  • Device-pixel scale: writes pixels at device density, preserving more detail on high-DPI displays but increasing image dimensions and file size.

Neither setting guarantees that a dynamic page will look identical to a user’s session. Ads, animations, personalized content, consent dialogs and lazy-loaded sections can change between loads. Always inspect the saved image before treating it as a final record.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

Choose a capture workflow

Rank Workflow Best for Resolution control Important distinction
1 ScreenshotNeo API and AI-agent capture without maintaining a browser Viewport, retina scale and image resizing Clean shots remove consent banners, newsletter popups and chat widgets; only clean captures are billed
2 Playwright API Repeatable scripts and CI pipelines scale: 'css' or scale: 'device' One call combines full-page capture with your own waits, headers and browser setup
3 Playwright CLI One-off terminal captures --hires for device pixels --full-page and --hires are separate switches
4 Firefox Developer Tools Manual capture in a graphical browser Web Console :screenshot --dpr Enable the entire-page option in Developer Tools settings first

Playwright API: the most controllable method

Install Playwright

In a new Node.js project, install Playwright and its browser binaries:

#1 Best Overall
Sale
Dell 27 Monitor S2725QS, 4K UHD IPS, 120Hz, 5ms, FreeSync Premium
  • Improved ComfortView Plus: Reduces harmful blue light emissions to ≤35%, for all-day comfort without sacrificing color accuracy.
  • Refresh rate: A smooth, tear-free experience with AMD FreeSync Premium (refresh rate up to 120Hz) and an ultra-low 0.03ms response time create a captivating experience for work and play.
  • Vivid colors: Immerse yourself in breathtaking 4K visuals with in-plane switching technology. Enjoy vibrant colors with 99% sRGB. The 1500:1 contrast ratio and HDR readiness deliver excellent depth and detail.
  • Re-engineered sound quality: Enjoy more detailed sound with spacious audio featuring greater output power, deeper frequency response and more decibel range than the previous generation.
  • Ultra-thin bezel: Designed with a sleek, modern aesthetic and an ash white finish, this display features ultra-thin bezels for a refined, minimalist design.
npm install -D playwright
npx playwright install chromium

Capture the complete page at device-pixel scale

Save this as capture.mjs:

import { chromium } from 'playwright';

const browser = await chromium.launch();
const page = await browser.newPage({
  viewport: { width: 1440, height: 900 }
});

await page.goto('https://example.com', { waitUntil: 'networkidle' });
await page.screenshot({
  path: 'page-device.png',
  fullPage: true,
  scale: 'device'
});

await browser.close();

Run it with node capture.mjs. The fullPage option captures the full scrollable page instead of only the viewport. The scale option accepts 'css' or 'device':

  • Use scale: 'device' when small text, diagrams or screenshots embedded in the page need maximum pixel detail.
  • Use scale: 'css' when you need a more compact image for documentation, pull requests or storage.

The final image can be much taller than the browser window. On a high-DPI device-pixel capture, both width and height may increase, so confirm that your image viewer and downstream systems accept the resulting dimensions.

Make the viewport intentional

Responsive layouts can rearrange content at different widths. Set a viewport that matches the device or report you are documenting, and keep it fixed across runs. If you need a mobile rendition, create a separate capture with a mobile-sized viewport rather than assuming a desktop full-page image can be cropped reliably.

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

Wait for content before capturing

waitUntil: 'networkidle' waits for network activity to settle, but it is not a guarantee that every animation, client-side request or lazy image is finished. Add a page-specific readiness check when you know one:

await page.goto('https://example.com/catalog', { waitUntil: 'domcontentloaded' });
await page.waitForSelector('[data-catalog-ready]');
await page.screenshot({
  path: 'catalog.png',
  fullPage: true,
  scale: 'device'
});

There is no universal preparation sequence for every dynamic site. Open the output and look for blank image boxes, missing sections or content that appears only after scrolling. If the page is lazy-loaded, use the site’s own loading signal or an automation step appropriate to that page, then capture again.

Rank #2
Sale
LG 27US500-W Ultrafine Monitor 27-Inch 4K UHD (3840x2160) HDR10 IPS Borderless Design Reader Mode Flicker Safe Switch App HDMI DisplayPort - White
  • 4K UHD with 1000:1 Contrast Ratio - This UltraFine display with a 1000:1 contrast ratio displays deeper blacks and vivid colors in UHD clarity. With wide viewing angles, it gives creative professionals the ability to view and work with highly-detailed, digital imagery.
  • 4K HDR10 DCI-P3 - Explore HDR10 content the way it was meant to be seen with up to 90% DCI-P3 color gamut expression—an elevated color spectrum that brings brilliant color to life.
  • Onscreen Control - You can customize the workspace by splitting the display or adjusting basic monitor options with just a few mouse clicks.
  • Ergonomic Stand - The ergonomic stand makes it easy to flexibly adjust the tilt of the screen in the optimal position for you.
  • What's In The Box - Stand Body, Stand Base, Screws, Power Adapter, HDMI Cable, Quick Start Guide, Registration Card, Warranty.

Playwright CLI: a fast terminal command

For a one-off capture, Playwright’s CLI exposes separate switches for page coverage and density:

npx playwright screenshot --full-page --hires --filename=page.png https://example.com

--full-page includes the entire scrollable page. --hires requests device pixels rather than CSS pixels. Remove --hires when a smaller CSS-pixel image is preferable. Keep the URL last, and quote it in your shell if it contains query characters.

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

The CLI is convenient for manual work, while the API is better when you need to set a known viewport, wait for a selector, authenticate, or capture many URLs consistently.

Firefox Developer Tools: graphical and Web Console options

Enable the entire-page control

  1. Open Firefox Developer Tools.
  2. Open Developer Tools settings and enable Take a screenshot of the entire page.
  3. Use the page screenshot control and choose the entire-page option.

Firefox’s documentation describes this mode as saving the full webpage, including parts outside the current window bounds. It is useful when you want to inspect the rendered result manually without writing a script.

Use the Web Console helper

Open the Web Console and run:

:screenshot --fullpage

To request a different device-pixel ratio, add --dpr with the desired value. The helper also supports a delay, a filename and clipboard output, which can be useful when a page needs a brief visual settling period before capture. Check the Firefox screenshot documentation for the exact parameter syntax available in your Firefox version.

Rank #3
Sale
Dell 32 Monitor S3225QS, 4K UHD VA, 120Hz, FreeSync Premium, Eye Comfort
  • Improved ComfortView Plus: Reduces harmful blue light emissions to ≤35%, for all-day comfort without sacrificing color accuracy.
  • Refresh rate: A smooth, tear-free experience with AMD FreeSync Premium (refresh rate up to 120Hz) and an ultra-low 0.03ms response time create a captivating experience for work and play.
  • Vivid colors: Immerse yourself in 4K visuals with a VA panel. Enjoy true-to-life colors with 99% sRGB and 95% DCI-P3 coverage. The 1500:1 contrast ratio and HDR readiness deliver excellent depth and detail.
  • Re-engineered sound quality: Enjoy more detailed sound with spacious audio featuring greater output power, deeper frequency response and more decibel range than the previous generation.
  • Ultra-thin bezel: Designed with a sleek, modern aesthetic and an ash white finish, this display features ultra-thin bezels for a refined, minimalist design.

Or skip the browser setup

ScreenshotNeo returns a PNG, JPEG, WebP or PDF from one request. It accepts the site’s consent banner like a visitor, then removes more than 60 known consent platforms, newsletter popups and chat widgets before the shot; each cleanup step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and response headers identify the result with X-Page-Verdict and X-Billed.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

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

See the ScreenshotNeo API documentation for authentication and options. This cURL example captures Stripe:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

The same request in Python:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

And in Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()));

ScreenshotNeo also provides an MCP server with take_screenshot, get_page_info and capture_pdf tools, so Claude, Cursor and other MCP clients can capture pages without custom browser code. Create a free account for 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots.

ScreenshotNeo options for high-resolution captures

The API exposes 63 options, and every feature is included on every plan. Relevant controls for full-page, high-resolution work include:

  • Full-page capture with lazy images loaded, or capture a single element by CSS selector.
  • Dark mode, 12 device presets, arbitrary viewport sizes and retina scale.
  • PNG, JPEG, WebP and PDF output; PDF paper size, margins, landscape mode and page ranges.
  • Custom CSS and JavaScript, a click on an element before capture, hidden selectors, and waits for a selector, delay or network idle.
  • Blocking for ads, trackers, requests or resource types.
  • Custom headers, cookies, user agent and Authorization; timezone and geolocation settings.
  • Transparent backgrounds and image resizing.
  • Caching with a TTL you choose, signed links for public <img> tags, asynchronous jobs with signed webhooks and bulk capture of up to 100 URLs per call.
  • A usage API, an OpenAPI specification and compatibility with parameter names used by other screenshot APIs, which can simplify migration.

Check the output before you rely on it

  • Coverage: confirm that the image reaches the intended bottom of the page and that no section is clipped.
  • Density: zoom into small type or diagrams. If they look soft, recapture with device-pixel scale or a larger retina setting.
  • Layout: record the viewport width, because responsive breakpoints can change the page structure.
  • Completeness: inspect lazy images, charts, fonts and client-rendered components rather than assuming network idle means visual readiness.
  • File handling: verify that your image editor, document system or upload endpoint accepts the resulting height and file size.

Troubleshooting common failures

The screenshot stops at the viewport

Cause: the full-page switch was omitted. Fix: set fullPage: true in the API, add --full-page in the CLI, or select Firefox’s entire-page control. Resolution settings alone do not extend the captured area.

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

The image is full length but text is still small

Cause: CSS-pixel output or a narrow source viewport. Fix: use scale: 'device' in Playwright, --hires in the CLI, or a higher DPR/retina setting in your chosen workflow. Expect a larger file.

Rank #4
Samsung 27" Odyssey G5 (G51F) Series QHD (1440P) Gaming Monitor
  • QHD Resolution (2560 x 1440) has 1.7 times the pixel density of Full HD for incredibly detailed pinsharp images
  • HDR10 provides brighter highlights and nuanced shadow for added depth - making every scene feel more vivid and realistic
  • The 180Hz refresh rate minimizes lag for gameplay with ultra-smooth action. Plus, the 1ms response time helps capture your moves in real-time, allowing you to react fast for gaming precision
  • AMD FreeSync reduces choppiness, screen lag and image tearing, ensuring that your fast-paced, complex in-game action is stable with minimal stutter
  • Ergonomic stand allows for tilt, pivot and height adjustments to maximize gaming comfort

Images or sections are missing near the bottom

Cause: lazy loading or client-side rendering has not completed. Fix: wait for a page-specific selector or readiness signal, then inspect the result again. For a managed capture, ScreenshotNeo’s full-page mode loads lazy images.

A cookie banner, chat bubble or newsletter covers content

Cause: the page presented an overlay during capture. Fix: dismiss or hide the element in your Playwright/Firefox workflow, or use ScreenshotNeo’s cleanup controls, which accept the consent prompt and remove more than 60 known consent platforms, newsletter popups and chat widgets before capture.

The page is blank, times out or triggers a bot check

Cause: the destination rejected automation, failed to load or exceeded the wait window. Fix: verify the URL and authentication, try a realistic viewport and user agent, and capture again after confirming the page works interactively. ScreenshotNeo reports these outcomes in its response and does not bill bot checks, blank pages, timeouts or failed loads.

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

The output is too large to upload

Cause: full-page height multiplied by device-pixel density creates a very large raster. Fix: switch to CSS scale, reduce the viewport width only if that matches your intended layout, resize after capture, or choose JPEG/WebP where lossy compression is acceptable. Do not claim that a smaller file still represents the same pixel detail.

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

Performance, reliability and cost decisions

Full-page captures require more rendering and memory than viewport shots, and device-pixel output multiplies the number of pixels again. The official Playwright and Firefox documentation does not establish a universal maximum page height, capture speed or file-size limit, so measure your own pages and set timeouts appropriate to their content.

Best Value
Sale
Dell 27 Monitor S2725QC, 4K UHD IPS, 120Hz, 99% sRGB, 4ms, FreeSync Premium
  • Low blue light: The improved ComfortView Plus reduces harmful blue light emissions to ≤35%, for all-day comfort without sacrificing color accuracy.
  • Refresh rate: A smooth, tear-free experience with AMD FreeSync Premium (refresh rate up to 120Hz) and an ultra-low 0.03ms response time create a captivating experience for work and play.
  • Vivid colors: Immerse yourself in breathtaking 4K visuals with in-plane switching technology. Enjoy vibrant colors with 99% sRGB. The 1500:1 contrast ratio and HDR readiness deliver excellent depth and detail.
  • Re-engineered sound quality: Enjoy more detailed sound with spacious audio featuring greater output power, deeper frequency response and more decibel range than the previous generation.
  • Easy connectivity: Keep your desk organized and clutter-free with a single USB-C cable (up to 65W power delivery).

Local Playwright or Firefox keeps the workflow under your control but leaves browser installation, updates, retries, authentication and storage to you. ScreenshotNeo centralizes those concerns, exposes cache TTL, asynchronous jobs, signed webhooks and bulk capture, and tells you whether a response was billed.

ScreenshotNeo plan Included shots Price
Free 1,000 per month $0, no card
Starter 3,000 $5
Growth 15,000 $15
Pro 60,000 $39
Scale 250,000 $99
Business 1,000,000 $249

Yearly billing provides two months free. Every feature is available on every plan, so plan choice is based on volume rather than locking away capture controls.

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

FAQ

Should I keep both a screenshot and the capture settings?

Yes. Store the source URL, capture date, viewport dimensions, scale or DPR, browser/workflow, and any waits or injected CSS alongside the image. Those details let another person reproduce the layout and explain why a later capture differs.

Can I use a full-page screenshot as a PDF?

A raster screenshot and a PDF serve different purposes. Use PNG, JPEG or WebP when pixel-level appearance is the goal; use a PDF workflow when you need paginated output with paper size, margins, landscape orientation or selected page ranges, such as ScreenshotNeo’s PDF options.

Frequently Asked Questions

Should I keep both a screenshot and the capture settings?

Yes. Store the source URL, capture date, viewport dimensions, scale or DPR, browser/workflow, and any waits or injected CSS alongside the image so the result can be reproduced.

Can I use a full-page screenshot as a PDF?

A raster screenshot is suited to pixel-level appearance, while a PDF is paginated. Choose PDF when paper size, margins, landscape orientation or page ranges matter.

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

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.