Skip to content

Free PDF tool

Extract pages from a PDF

Pull out the pages you need, such as a signed page or a single chapter, and save them as a new PDF. The pages appear in the order you list them.

Your PDF stays on your device

  • Free, no account needed
  • Built on the open-source libraries pdf-lib and PDF.js
Runs in your browser. Files are not uploaded.

How it works

Extract pages from a PDF in 4 steps

  1. 1

    Add a PDF

    Drop the document onto the tool or choose it from your device.

  2. 2

    List the pages

    Enter pages and ranges, for example 3, 7-9 or 12, 1 to reorder.

  3. 3

    Extract

    Select Extract pages to build the new document in your browser.

  4. 4

    Download

    Save the new PDF. The original file is not changed.

Questions

Frequently asked questions

Are my files uploaded to a server?

No. The tool runs entirely in your browser: the PDF is read, changed and saved on your device, and its contents are never sent to our servers.

Can I change the page order while extracting?

Yes. Pages are added in the order you type them, so 5, 1-2 produces a document that starts with page five followed by pages one and two.

What is the difference to splitting?

Extracting creates one new PDF from your selection. Splitting creates several files at once, one per range.

Can I use password-protected PDFs?

Not in the browser tool. Encrypted PDFs cannot be modified without the password, so the tool reports them instead of producing a broken file. Remove the protection with the software that created it, then try again.

Automate it

Do the same in your application with Dynamic Document API

Use the split endpoint with a single range to extract pages on the server, for example to send only the summary page of a report.

POST /v1/pdf-tools/splitPlanned endpoint

This endpoint is specified in the public API but not released yet; the request shape may still change.

curl -X POST https://api-eu.dynamicdocumentapi.com/v1/pdf-tools/split \
  -H "Authorization: Bearer $DYNAMIC_DOCUMENT_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "source": {
    "render_id": "rnd_01J9ZM1X3F7R8K2C4V6B8N0P2Q",
    "file_id": "file_01J9ZM4T6Y8U0I2O4P6A8S0D2F"
  },
  "ranges": [
    "1-2"
  ]
}'