ScreenshotNeo

BlogHTML to image & PDF

How to Convert a Web Page to a Clean PDF

Save readable PDFs from any webpage using browser print settings, Reader View, mobile workflows, or an automated screenshot API.

By the ScreenshotNeo team1 October 20267 min read

The most dependable way to convert a web page to a clean PDF is to open the browser’s print dialog, choose a PDF destination, inspect the preview, adjust layout settings, and save. For pages filled with navigation, ads, popups, or consent banners, switch to Reader View or a simplified print format first when your browser supports it.

Choose the right method

Your best workflow depends on the device and how much control you need:

Situation Recommended method
One page on a desktop Browser print dialog and Save as PDF
Article with ads or navigation Reader View or Simplified format, then print
iPhone or iPad Safari Share → Markup → Save File To
Android phone Chrome Share → Print → Save as PDF
Automated, repeatable PDFs ScreenshotNeo API

Before you save: prepare the page

  1. Open the complete URL, including any path or query string you need.
  2. Wait for the main content, images, tables, and charts to finish loading.
  3. Dismiss cookie dialogs or other overlays if they cover content.
  4. Use Reader View or a simplified view when available.
  5. Scroll through the page once if content loads lazily as you scroll.
  6. Check whether the page requires a login or has content hidden behind an interaction.

A PDF is generated from the browser’s print representation, which can differ from the screen. Always use the print preview as your quality check.

Chrome on Windows, Linux, or Mac

  1. Open the webpage and let it finish loading.
  2. Choose File → Print, or press Ctrl+P on Windows/Linux or Command+P on Mac.
  3. Choose the PDF destination. Chrome’s documented PDF workflow uses Save as PDF.
  4. Review the preview and available settings.
  5. Click Save, choose a filename and folder, then confirm.

Use the preview to catch missing sections, unexpected blank pages, poor page breaks, or unreadably small text. Chrome’s labels can change between versions, but the print dialog remains the basic route. See Google’s print instructions.

Firefox on a computer

  1. Open the Firefox menu and choose Print.
  2. In the destination menu, select Save to PDF.
  3. Set orientation, pages, color, paper size, scale, margins, and headers or footers as needed.
  4. Inspect the preview, then save the PDF.

Remove clutter with Reader View or Simplified format

If the Reader View icon is available, open it before printing. You can also use More settings → Format → Simplified when Firefox offers that option. Mozilla notes that Simplified is unavailable when the page does not support it or Reader View is already active, so its absence is expected on some pages. Read Mozilla’s printing documentation.

Save a webpage as a PDF on iPhone or iPad

  1. Open the page in Safari.
  2. Tap the Page Menu and Share, or tap the Share button depending on your tab layout.
  3. Tap Markup.
  4. Optionally annotate the page.
  5. Tap Done, then Save File To.
  6. Name the file and choose a location in Files.

This is Apple’s built-in webpage-to-PDF flow. The exact button placement can vary with the Safari layout. See Apple’s iPhone instructions.

Save a webpage as a PDF on Android

  1. Open the page in Chrome.
  2. Tap More → Share → Print.
  3. Select Save as PDF.
  4. Choose a file location and save.

Android manufacturers may place the print service in a slightly different location. If you cannot see a PDF destination, enable or update the device’s system print service.

Make the PDF clean and readable

Use the print preview as a checklist

  • The first and last paragraphs are present.
  • Headings are not stranded at the bottom of a page.
  • Tables fit the page width and remain legible.
  • Important images appear and are not clipped.
  • Links and references are included where required.
  • There are no accidental blank pages.
  • Text is large enough at the selected scale.
  • Headers and footers do not cover content.

Choose page settings deliberately

Portrait works for most articles; landscape can help with wide tables or diagrams. Reduce margins only when the content is being clipped, and increase margins when text feels crowded. Select a page range when you need only part of a long page. Background printing can preserve colored sections, but it can also increase file size and use more ink if you print the PDF later.

When Reader View removes too much

Simplified views may omit navigation, interactive charts, embedded tools, comments, or images. If required material disappears, return to the original page and adjust print settings instead. Websites control their print CSS, so no browser setting can guarantee identical output for every site.

Automate clean PDFs with ScreenshotNeo

For scheduled jobs, batch captures, or pages that need consistent cleanup, ScreenshotNeo is a website screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. It accepts 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, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers.

For PDF work, its options include paper size, margins, landscape orientation, and page ranges. You can also wait for a selector, delay, or network idle; load lazy images in full-page captures; set custom CSS or JavaScript; click an element; hide selectors; block ads, trackers, requests, or resource types; provide headers, cookies, a user agent, or Authorization; set timezone and geolocation; and cache a result with a TTL you choose. See the ScreenshotNeo API documentation for request parameters and PDF configuration.

Or skip the browser setup

Use the same endpoint from your shell or application. Replace the URL with the page you need and configure PDF options from the docs.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Cookie banners, popups, and chat widgets are removed before the shot. Bot checks, blank pages, and failed loads are never billed. An MCP server lets AI agents such as Claude, Cursor, and other MCP clients take screenshots with take_screenshot, inspect pages with get_page_info, and create PDFs with capture_pdf. The Free plan includes 1,000 screenshots each month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

Reliability, performance, and cost considerations

Reliability

  • Wait for a meaningful selector or network idle when a page renders asynchronously.
  • Use a delay for content that appears after client-side timers.
  • Supply authentication headers or cookies for private pages, and keep credentials out of client-side code.
  • Check X-Page-Verdict and X-Billed so your job can distinguish a clean result from a failed or blocked load.
  • Retry transient network failures with backoff, but do not blindly retry a page that consistently returns a bot check or blank result.

Performance

  • Capture only the element you need when a full-page PDF is unnecessary.
  • Block advertising or tracking requests when they are not part of the document.
  • Use caching with a TTL for unchanged pages.
  • Use bulk capture for up to 100 URLs per call when processing a collection.
  • Use asynchronous jobs and signed webhooks for long-running or high-volume work.

Cost

ScreenshotNeo charges only for clean shots. Cache hits and failed loads are free. Plans are Free (1,000 shots/month), Starter ($5 for 3,000), Growth ($15 for 15,000), Pro ($39 for 60,000), Scale ($99 for 250,000), and Business ($249 for 1,000,000). Yearly billing gives two months free, and every feature is available on every plan.

Troubleshooting

Problem Likely cause Fix
Ads or navigation remain The page was printed in its normal view Use Reader View or Firefox Simplified, or hide selectors in an automated capture.
Content is missing Lazy loading, a print stylesheet, or simplified mode removed it Scroll before printing, disable Simplified, or wait for a selector/network idle.
Text is tiny Scale is too low or the page is wider than the paper Increase scale, use landscape, reduce margins, or capture a narrower element.
Blank pages appear Print CSS inserted page breaks or an empty container Inspect preview, change margins or scale, and use custom CSS for automated captures.
Images are absent Images have not loaded or are blocked Wait for loading, scroll to trigger lazy images, or allow required resources.
Mobile print option is missing The system print service is disabled or the menu differs Enable the print service on Android, or use Safari’s Share → Markup flow on iPhone.
ScreenshotNeo returns a bot verdict The destination presents a bot check or CAPTCHA Review the verdict, avoid repeated retries, and confirm the URL is accessible to a normal visitor.
ScreenshotNeo result is blank or timed out The page failed to load or needs more rendering time Use a selector wait, delay, or network-idle wait and inspect the response headers.
PDF output differs from the screen Print CSS and pagination changed the layout Check preview, adjust paper size, margins, orientation, scale, or page range.

FAQ

Can every webpage be converted cleanly?

No. Pages can require authentication, client-side rendering, or interactions, and browsers apply site-specific print styles. Preview the result and use a wait or interaction when automating.

Will Reader View preserve the whole page?

Not always. It can remove navigation, widgets, comments, or interactive content. Use the original view when those elements are part of the document.

How do I save only selected pages?

Use the page-range control in the print dialog. ScreenshotNeo also supports PDF page ranges through its PDF options.

Can I create PDFs in bulk?

Yes. ScreenshotNeo supports bulk capture for up to 100 URLs per call and asynchronous jobs with signed webhooks.

Do failed ScreenshotNeo captures consume credits?

No. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and the response reports the verdict and billing status.