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.
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
- 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.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteWait 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
- 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.
Recommended Free Tools
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
- Open Firefox Developer Tools.
- Open Developer Tools settings and enable Take a screenshot of the entire page.
- 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
- 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.
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.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11The 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
- 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.
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.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
- 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.
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.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →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.

