URL to PDF

URL to PDF, with the margins and paper size you specify

Invoices, reports and receipts, rendered by the same browser your customers use to view them.

Capture settings
Enter the source, choose your options, then run the capture.
Result
Your capture will appear here and stay in view.
waiting

No result yet

Complete the settings and run the tool. Images, PDFs, text, and video all preview in this panel.

Send this exact request
cURL, TypeScript and Python are generated from the same configuration as the demo.
curl --fail-with-body "https://api.pagecapture.dev/v1/take" \
  -H "X-Access-Key: $PAGECAPTURE_KEY" \
  -H "Content-Type: application/json" \
  --data '{"url":"https://example.com","pdf_paper_format":"a4","format":"pdf","pdf_print_background":true}' \
  -o capture.pdf

Paper formats

A0 through A6, Letter, Legal, Tabloid and Ledger.

Margins per side

pdf_margin sets all four; the per-side parameters override it.

Backgrounds preserved

pdf_print_background keeps the CSS backgrounds most print stylesheets drop.

Fit to one page

Measures the document and builds a custom paper size, capped so the result stays readable.

Use this when
  • The page already exists at a URL and browser print output is the desired document.
  • Paper size, margins and background handling must be explicit.
Do not use this when
  • The caller owns raw HTML and does not need to host it.
  • Long-term evidence requires a retention and provenance policy beyond the file.
Workflow

From input to verified artifact

  1. 01

    Navigate

    The worker validates and opens the requested URL.

  2. 02

    Print

    Chromium applies the requested screen/print media, paper and margins.

  3. 03

    Deliver

    Receive PDF bytes or route the file to configured storage.

Edge cases and common errors

PDF differs from screen

The page may define print CSS; choose media_type deliberately.

Fit-one-page becomes unreadable

Very long pages should remain paginated rather than being scaled into one sheet.

DIY in hours and operational risk

Keep the browser when that is the simpler system.

Calling page.pdf() is small; safely navigating arbitrary URLs and operating Chromium is the larger boundary.

DIY is a good fit when

  • Only your own stable pages are printed in an existing browser service.
  • The PDF is generated infrequently by a controlled back-office task.

No default is supplied: we do not invent engineering-hour savings.

Responsibility and risk transferred
Navigation security
Redirects and subresources can reach private services without an egress policy.
Delivery lifecycle
Large PDFs can outlive request timeouts without async delivery.
Workload pricing

1,000 URL-to-PDF jobs

This is an editable scenario, not a savings claim. Only successful captures that miss cache are billable.

Billable successes
882
Smallest included plan
Basic
Published monthly price
$10.00
Tested and reviewed

Written by PageCapture Engineering. Reviewed by PageCapture API maintainers. Last tested 2026-08-11.

cURL, TypeScript and Python executed against controlled fixtures; request contract and artifact format verified.

Questions this raises

Why does my PDF look different from the page?

Chromium applies print stylesheets by default. We emulate screen media unless you set media_type=print, so what you see is what the browser shows.

Can I generate PDFs from my own HTML?

Yes — POST html with format=pdf. The same PDF options apply.

How large can a PDF get?

Long documents are fine. Fit-to-one-page is capped at 200 inches per side, above which readers start refusing the file.