To capture an entire scrollable page with a browser you control, use Puppeteer or Playwright and set fullPage: true. To make a PDF with Puppeteer, call page.pdf(); it uses print styles by default. A hosted screenshot API is simpler when you want to send a URL and receive an image or PDF without running browser infrastructure yourself.
Choose between browser automation and a hosted API
A self-managed browser gives you direct control over navigation, page state, and rendering, but you must operate the browser environment and decide when a page is ready. A hosted API handles rendering behind a request, which can reduce setup for straightforward URL-to-image or URL-to-PDF jobs. Compare services by input type, output formats, full-page support, readiness controls, quotas, caching, and current price; those details vary and can change.
As an Amazon Associate I earn from qualifying purchases.
| Approach | Useful when | Trade-off |
|---|---|---|
| Puppeteer or Playwright | You need code-level browser control or an existing browser-automation workflow. | You manage browser deployment, maintenance, and page-readiness logic. |
| Hosted rendering API | You want to submit a URL or HTML and receive a rendered file without operating a browser. | Options, request limits, caching, prices, and failure handling depend on the provider; check current documentation and pricing. |
For a hosted option, ScreenshotNeo is a website screenshot API and MCP server. It puts clean captures first, bills only clean shots, and has a $5 paid plan for 3,000 shots.
Generate a full-page screenshot with Puppeteer
Puppeteer’s documented workflow is to launch a browser, open a page, navigate to the URL, and capture it. Set fullPage: true to capture the entire page rather than only the visible viewport. Install Puppeteer in your project with npm install puppeteer; the example below saves a PNG.
#1 Best Overall
- PORTABLE SCANNER FOR USE ON-THE-GO — The fastest and lightest mobile single-sheet-fed compact document scanner in its class¹
- QUICK DOCUMENT SCANNING ― This Epson ultra-fast scanner scans a single page as quickly as 5.5 seconds²; Windows and Mac compatible
- VERSATILE PAPER HANDLING ― Portable scanner scans documents up to 8.5 x 72 in; Also easily digitizes receipts and ID cards to make accounting, bookkeeping, and organizing simpler
- INTUITIVE, HIGH-SPEED SOFTWARE — Epson ScanSmart Software³ is a smart tool allowing you to easily scan, review, and save; Stay organized easily with the help of this Epson scanner
- EASY SETUP — USB-powered connect to your computer for quick and simple scanning; No batteries or external power supply required to operate portable document scanner; Standard Connectivity: USB 2.0
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
await page.screenshot({ path: 'page.png', fullPage: true });
} finally {
await browser.close();
}
})();
networkidle2 is one navigation-wait strategy, not proof that every application has finished rendering. Pages may load content after navigation, including content triggered by scrolling. For those cases, wait for an application-specific selector or perform the interaction that reveals the content before capturing. If you use a fixed delay, choose it based on the page’s behavior rather than assuming one delay works everywhere.
Generate a full-page screenshot with Playwright
Playwright also supports full-page screenshots. Its documentation describes this as capturing the entire scrollable page as though it were displayed on a very tall screen. Install the package with npm install playwright, then run:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle' });
await page.screenshot({ path: 'page.png', fullPage: true });
} finally {
await browser.close();
}
})();
As with Puppeteer, choose a readiness condition that matches the site. Network idleness can be unsuitable for pages that keep requests open or load important content later. Waiting for a meaningful selector can be more reliable when the target element signals that the content you need is present.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Create a PDF with Puppeteer
page.pdf() renders using print CSS by default. If you want the PDF to follow screen media styles instead, call page.emulateMediaType('screen') before generating it. Puppeteer documents that PDF generation waits for fonts by default, but your application still needs to account for dynamic content and page readiness.
Rank #2
- FAST SPEEDS - Scans color and black and white documents a blazing speed up to 16ppm (1). Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- ULTRA COMPACT – At less than 1 foot in length and only about 1. 5lbs in weight you can fit this device virtually anywhere (a bag, a purse, even a pocket).
- READY WHENEVER YOU ARE – The DS-640 mobile scanner is powered via an included micro USB 3. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan.
- WORKS YOUR WAY – Use the Brother free iPrint&Scan desktop app for scanning to multiple “Scan-to” destinations like PC, Network, cloud services, Email and OCR. (2) Supports Windows, Mac and Linux and TWAIN/WIA for PC/ICA for Mac/SANE drivers. (3)
- OPTIMIZE IMAGES AND TEXT – Automatic color detection/adjustment, image rotation (PC only), bleed through prevention/background removal, text enhancement, color drop to enhance scans. Software suite includes document management and OCR software. (4)
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.goto('https://example.com', { waitUntil: 'networkidle2' });
// Keep this line if the PDF should use screen styles instead of print styles.
await page.emulateMediaType('screen');
await page.pdf({
path: 'page.pdf',
format: 'A4',
printBackground: true
});
} finally {
await browser.close();
}
})();
Remove the emulateMediaType('screen') line to use the default print-media rendering. The format and printBackground values above are example output settings; adjust paper size and background treatment to your document requirements.
Check color and print layout
Print rendering can change colors compared with the on-screen page. When exact colors matter, Puppeteer documents the CSS property -webkit-print-color-adjust as a way to force exact colors. For example, add a print rule to the page’s stylesheet:
@media print {
* {
-webkit-print-color-adjust: exact;
}
}
Inspect the resulting PDF: print styles can also change layout, hide elements, or alter page breaks. Confirm that the actual output matches the intended document instead of assuming the browser view and PDF will be identical.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Account for lazy content and page readiness
Full-page capture means a taller output, but it does not guarantee that every image or dynamically rendered section has loaded. Before capture:
Rank #3
- FAST DOCUMENT SCANNING — Document scanner with feeder allows you to speed through stacks with a 50-sheet Auto Document Feeder (ADF); Efficient office scanner to help you scan more productively
- INTUITIVE, HIGH-SPEED SOFTWARE — Quickly scan with this desktop document scanner; Epson ScanSmart Software lets you easily preview scans, email files, upload to the cloud, and more; Plus, automatic file naming saves even more time
- SEAMLESS INTEGRATION — Easily incorporate your data into most document management software with the included TWAIN driver; Office document scanner integrates seamlessly with business workflows
- EASY SHARING — Duplex scanner allows you to scan straight to email or popular cloud storage2 services like Dropbox, Evernote, Google Drive, and OneDrive for simple storage and sharing
- SIMPLE FILE MANAGEMENT — Scanner allows the creation of searchable PDFs with Optical Character Recognition (OCR) and convert scans to editable Word or Excel files effortlessly; Designed for home and office document scanning
- Wait for a selector that appears only when the needed content is ready.
- For lazy-loaded images or sections, scroll through the page or trigger the relevant interaction before taking the screenshot. ScreenshotOne documents scrolling to trigger lazy-loaded content; behavior and controls differ by provider.
- Use Puppeteer’s documented font-wait behavior for PDFs, while separately checking application data and late-running scripts.
- For long pages, verify the output dimensions or PDF page breaks and ensure the page has not been truncated or left with blank sections.
A capture workflow should define what “ready” means for its target site. Waiting for navigation alone may be insufficient for a single-page app, a page with delayed API responses, or a document whose content appears only after scrolling.
Use ScreenshotNeo instead of operating a browser
Or skip the browser setup: ScreenshotNeo accepts a URL in one GET request and can return an image or PDF. Its capture workflow accepts cookie or consent banners as a visitor and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Failed loads, blank pages, bot checks or CAPTCHAs, timeouts, and cache hits are not billed, and response headers report the page verdict and billing status. It also has an MCP server with take_screenshot, get_page_info, and capture_pdf tools for AI agents using Claude, Cursor, or another MCP client.
The following cURL request saves a WebP screenshot of the target URL. Replace YOUR_API_KEY with your key. See the ScreenshotNeo API documentation for available parameters, PDF output, and other capture options.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemscurl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
The request shown uses stripe.com as its example target. ScreenshotNeo also accepts commonly used screenshot API parameter names to make switching easier. Its features include full-page capture with lazy images loaded, CSS-selector element capture, dark mode, 12 device presets or a custom viewport, retina scale, PDF paper size/margins/orientation/page ranges, HTML/CSS-to-image, custom CSS and JavaScript, click-before-capture, selector hiding, waits for selectors/delay/network idle, blocking ads/trackers/requests/resource types, custom headers/cookies/user agent/Authorization, timezone and geolocation, transparent backgrounds, image resizing, configurable cache TTL, signed public-image links, async jobs with signed webhooks, bulk capture of up to 100 URLs per call, a usage API, and an OpenAPI specification.
ScreenshotNeo’s plans are monthly allowances; every feature is available on every plan. Yearly billing gives two months free.
Rank #4
- Scanner type: Document
- Connectivity technology: USB
- With Auto Scan Mode, the scanner automatically detects what you're scanning
- Digitize documents and images
| Plan | Price | Monthly shots |
|---|---|---|
| Free | $0 | 1,000 |
| Starter | $5 | 3,000 |
| Growth | $15 | 15,000 |
| Pro | $39 | 60,000 |
| Scale | $99 | 250,000 |
| Business | $249 | 1,000,000 |
Start with 1,000 free screenshots a month with no card required.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Troubleshoot incomplete or unexpected output
The screenshot shows only the visible viewport
Set fullPage: true in the Puppeteer or Playwright screenshot options. If you are using a hosted API, confirm that full-page capture is supported and enabled for the request.
Free tools Windows power users keep installed
One-click scans. No signup required.
Images or sections are missing
The page may use lazy loading or delayed application rendering. Scroll through the page, wait for a content-specific selector, or trigger the interaction that loads the missing section, then capture again.
The PDF looks different from the browser
Puppeteer uses print CSS by default for page.pdf(). Use page.emulateMediaType('screen') before generating the PDF if screen styles are desired. If print output is intentional, check print-specific CSS, color adjustment, backgrounds, and page breaks in the resulting file.
Best Value
- OUR MOST ADVANCED SCANSNAP. Large touchscreen, fast 45ppm double-sided scanning, 100-sheet document feeder, Wi-Fi and USB connectivity, automatic optimizations, and support for cloud services. Upgraded replacement for the discontinued iX1600
- CUSTOMIZABLE. SHARABLE. Select personalized profiles from the touchscreen. Send to PC, Mac, mobile devices, and clouds. QUICK MENU lets you quickly scan-drag-drop to your favorite computer apps
- STABLE WIRELESS OR USB CONNECTION. Built-in Wi-Fi 6 for the fastest and most secure scanning. Connect to smart devices or cloud services without a computer. USB-C connection also available
- PHOTO AND DOCUMENT ORGANIZATION MADE EFFORTLESS. Easily manage, edit, and use scanned data from documents, receipts, photos, and business cards. Automatically optimize, name, and sort files
- AVOIDS PAPER JAMS AND DAMAGE. Features a brake roller system to feed paper smoothly, a multi-feed sensor that detects pages stuck together, and skew detection to prevent paper damage and data loss
The PDF has blank areas or stale content
Navigation completion does not necessarily mean that dynamic content is ready. Wait for the required selector or application state before calling page.pdf(), and verify that fonts and data have loaded.
A hosted API returns an error or an unexpected billable result
Check that the URL is reachable by the provider, inspect the response status and provider-specific headers, and confirm the service’s current rules for quotas, caching, failures, and billing. For ScreenshotNeo, use the X-Page-Verdict and X-Billed response headers to see the reported page result and billing status.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Keep reliability and cost decisions tied to your workload
With Puppeteer or Playwright, the request cost is only part of the operational picture: your team must provision and maintain browser execution and handle retries, timeouts, and page readiness. With a hosted API, compare its current quotas, request rates, cache behavior, and treatment of failed renders before choosing. Vendor feature and pricing pages are the appropriate place to verify current limits; published plans can change, and they are not independent reliability benchmarks.
Other documented hosted options include ScreenshotOne, which describes full-page screenshots and URL, HTML, or Markdown-to-PDF output; Urlbox, which lists full-page capture and URL/HTML-to-PDF; Browserless, which offers screenshot and PDF APIs as well as Puppeteer and Playwright scripting; and Cloudflare Browser Run, which documents quick screenshot/PDF actions and sessions through Puppeteer, Playwright, or CDP. See ScreenshotOne documentation, ScreenshotOne pricing, Urlbox pricing, Browserless, and Cloudflare Browser Run documentation for provider details; check their current terms before adopting them.
Frequently Asked Questions
Does Puppeteer’s full-page screenshot capture content that appears only after scrolling?
Not necessarily. Trigger lazy loading or other page interactions and wait for the content before capturing.
Can I make a PDF use screen styles rather than print styles?
Yes. With Puppeteer, call page.emulateMediaType('screen') before page.pdf().
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 matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCan a hosted rendering API return a PDF as well as an image?
Some can, but confirm the provider’s current output formats and controls in its documentation.
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.




