ScreenshotNeo

BlogHTML to image & PDF

How to Generate a Full-Page PDF from a Webpage

Save any webpage as a readable, complete PDF with browser print settings, full-page capture tools, troubleshooting, and an API option.

By the ScreenshotNeo team1 October 20267 min read

For a readable PDF, start with your browser’s Print command and choose its PDF destination. Open the page, wait for the content to load, press Ctrl+P (Windows) or Command+P (macOS), select Save to PDF or the equivalent destination, inspect the preview, then adjust paper size, orientation, scale, margins, backgrounds, and headers or footers.

Printing follows the page’s print stylesheet, so it can omit or rearrange elements that appear on screen. If you need a screenshot-like record of the rendered page, use a full-page capture tool that explicitly exports PDF. A continuous tall PDF preserves the page as one image; a paginated PDF is easier to print and read.

1. Print a webpage to PDF in Firefox

  1. Open the webpage and wait for text, images, and lazy-loaded sections to finish loading.
  2. Open the menu and choose Print.
  3. In the destination menu, select Save to PDF.
  4. Review every page in the preview. Look for missing sections, unexpected page breaks, clipped tables, and blank pages.
  5. Choose portrait or landscape orientation.
  6. Set paper size, scale, and margins. Lowering scale can prevent wide content from being cut off; increasing it improves readability when the page has large margins.
  7. Enable print backgrounds when colors, cards, or diagrams are part of the information you need.
  8. Choose whether to include headers and footers, then save the file.

Mozilla notes that webpages can be designed to look different on paper than on screen. The preview is therefore part of the workflow, not an optional check.

2. Print a webpage to PDF in Microsoft Edge

  1. Open the page after its content has loaded.
  2. Choose Menu → Print, or press Ctrl+P on Windows or Command+P on macOS.
  3. Select the PDF printer or save-to-PDF destination.
  4. Choose the page range if you only need selected pages.
  5. Adjust layout, paper size, margins, scale, and background graphics.
  6. Turn headers and footers on or off, inspect the preview, and save.

On supported sites, Edge’s Immersive Reader can reduce navigation and other clutter before printing. It changes the reading view, so compare the preview with the original page before saving.

3. Fix “cut off” content before saving

Wide tables and code blocks

Switch to landscape, reduce scale, or increase paper size. If a table still overflows, print only the relevant section or use a capture tool that preserves the rendered layout.

Images and sections missing below the fold

Scroll through the page once to trigger lazy loading. Wait for animations, charts, and embedded content to finish. A print stylesheet may intentionally hide those elements; a screenshot-style PDF is more suitable when visual fidelity matters.

Dismiss overlays before printing. If the page cannot be cleaned manually, use a capture service that handles consent banners and overlays before rendering.

Page breaks in the wrong places

Try different margins, scale, and orientation. A conventional A4 or Letter PDF is easier to print, while a single continuous page avoids breaks but can be awkward to read.

4. Full-page capture tools that export PDF

Browser print creates a print-rendered document. Full-page capture tools scroll or render the page to preserve its on-screen appearance, then export the result.

Option Best for What to check
GoFullPage Continuous screenshots or paginated paper-size PDFs Its listing describes A4, US Letter, and US Legal output, portrait or landscape options, clickable links, and smart page splitting.
Full Page Saver for Firefox Choosing between a visual PDF and searchable text PDF Its listing describes an “As image” long-page PDF and a text-enabled A4 PDF. Inner-scroll panels may capture only their visible portion.
FullPage Capture Scrolling capture with tall or paginated PDF output Review current permissions and privacy information before capturing confidential pages.

Extension descriptions are publisher claims. Check the current store listing, permissions, and output on the exact page you need to archive. Restricted browser pages, logged-in content, maps, Gmail-like inner scroll regions, and interactive widgets can behave differently from ordinary documents.

5. Choose the right PDF shape

  • Print-rendered PDF: usually best for selectable text, normal page sizes, and printing.
  • Image-style PDF: best for preserving the visual appearance of a long page; text may not be searchable or copyable.
  • Text-enabled capture PDF: attempts to retain searchable text and links while keeping the page layout.
  • One continuous page: preserves vertical continuity but can be difficult to print or navigate.
  • Paginated A4, Letter, or Legal: easier to share and print, but page breaks can split content.

6. Automate full-page PDF generation with ScreenshotNeo

For repeatable jobs, an API avoids a desktop browser and lets your application provide the URL and PDF settings. ScreenshotNeo is a website screenshot API and MCP server. It supports full-page capture, lazy-image loading, PDF paper size, margins, landscape mode, and page ranges. See the ScreenshotNeo API documentation for the current PDF parameters.

cURL

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

Use the PDF output option documented for your request when you need a PDF file instead of the default image output shown in this example.

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)

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 data = Buffer.from(await res.arrayBuffer());
require('node:fs').writeFileSync('shot.webp', data);

Useful capture controls

  • Capture the full page and load lazy images before rendering.
  • Capture one element by CSS selector when the whole document is unnecessary.
  • Set viewport, device preset, retina scale, dark mode, timezone, geolocation, headers, cookies, user agent, or Authorization.
  • Apply custom CSS or JavaScript, click an element, hide selectors, and wait for a selector, delay, or network idle.
  • Block ads, trackers, requests, or resource types.
  • Resize images, choose a cache TTL, create signed links, submit asynchronous jobs with signed webhooks, capture up to 100 URLs per bulk call, and read usage through the usage API.

7. Or skip the browser setup

ScreenshotNeo accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed; response headers identify the page verdict and whether the request was billed. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.

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

There is a free allowance of 1,000 screenshots each month with no card required. Paid plans start at $5 for 3,000 shots, and every feature is available on every plan. Create a free ScreenshotNeo account.

8. Troubleshooting checklist

Symptom Likely cause Fix
Content is missing Print CSS hides it or lazy loading did not finish Inspect print preview, scroll once, wait, or use full-page capture.
Right side is cut off Content is wider than the paper Use landscape, larger paper, smaller scale, or a rendered capture.
Only the visible part of a panel appears Nested scrolling container Expand the panel, print its own view, or verify whether the capture tool supports inner scrolling.
Blank or partially loaded pages Network, script, bot check, or timeout Retry after the page settles; for API jobs, increase the wait condition and inspect the page verdict headers.
PDF is huge Image-style pages or high retina scale Use text-enabled print output, lower scale, resize images, or paginate.
Text cannot be searched Image PDF Use browser print or a text-enabled PDF mode.
Links do not work Rasterized capture Use print-rendered or text-enabled output; confirm the tool preserves links.
Extension cannot run Restricted internal browser page Save a permitted page or use an API against a publicly reachable URL.

9. Performance, reliability, and cost

  • Performance: full-page rendering takes longer than viewport capture because images, scripts, and below-the-fold content must load. Waiting for a selector or network idle is more reliable than an arbitrary short delay.
  • Reliability: test dynamic pages, authenticated pages, nested panels, and bot-protected sites separately. Keep the exported file and inspect representative pages after changing browser or extension versions.
  • Privacy: review extension permissions and privacy statements before capturing logged-in or confidential pages. For an API, avoid placing long-lived credentials in client-side code.
  • Cost: browser print and extensions use your machine. ScreenshotNeo bills only clean shots; failed loads, bot checks, blank pages, timeouts, and cache hits are free. Caching with a chosen TTL can reduce repeated work.

10. FAQ

Can I make one very tall PDF instead of multiple pages?

Yes. Choose a continuous-page option in a PDF-capable full-page capture tool. It preserves continuity but is less convenient to print.

Why does my PDF look different from the webpage?

Print output follows print CSS and print settings. Hidden navigation, altered colors, and rearranged sections are normal; use a rendered capture when screen fidelity matters.

Will a full-page tool capture content inside a scrolling panel?

Not always. Inner-scroll regions can remain limited to their visible area. Test the actual page and expand or export the panel separately if needed.

What is the best method for searchable text?

Use browser print or a text-enabled PDF mode rather than an image-only capture.

Can an automated workflow create PDFs for many URLs?

Yes. A capture API can run from a server or job queue; ScreenshotNeo also supports bulk capture for up to 100 URLs per call and asynchronous jobs with signed webhooks.