PDF Splitter

Split any PDF file into individual pages or custom ranges. 100% free, works in browser, no sign-up.

✓ Free✓ No sign-up✓ Works in browser

Advertisement

Drop a PDF here or click to browse

PDF files only

Advertisement

Sponsored

Adobe Acrobat

The world standard for PDFs

Partner

Edit, sign, compress, merge, protect PDFs. 500M+ users. 7-day free trial.

Start Free Trial

How to Use This Tool

1

Upload Your PDF

Upload the PDF you want to split. The tool shows the total page count and thumbnail previews of all pages.

2

Set Split Options

Choose: split by page range (e.g., pages 1–5), extract specific pages, or split every page into its own file.

3

Download Split Files

Download each split PDF individually or download all as a ZIP file for convenience.

Advertisement

Sponsored
Smallpdf
Go Pro — 7 Days Free

Related Tools

Frequently Asked Questions

Can I extract just one page from a PDF?
Yes. Enter the page number in the page range field (e.g., page 3 to page 3) to extract a single page as a standalone PDF.
How many pages can I split at once?
There is no page limit. The tool handles PDFs of any length.
Will image quality be preserved after splitting?
Yes. Splitting a PDF only separates the pages — it does not re-compress or alter any content. Quality is identical to the original.
Can I split a scanned PDF?
Yes. Scanned PDFs (image-based pages) can be split exactly like text PDFs. The tool works on all valid PDF files.

About PDF Splitter

Your lender sent a 180-page closing disclosure package and underwriting only needs pages 42 through 58 for the appraisal review. Or you scanned a 60-page stack of receipts at the end of Q3 and need to break it into twelve per-vendor PDFs before handing to the bookkeeper. This splitter uses pdf-lib to parse the source document once, then emits one new PDDocument per range you define — 'pages 1-5', 'page 12', '20-end' — each downloaded as a separate file or bundled as a zip via JSZip when you are splitting into more than three outputs. Page rotation, bookmarks within the selected range, and embedded fonts carry over; bookmarks pointing outside the kept range are pruned so Adobe Reader does not show broken outline entries. Everything runs in the tab, which means the split outputs never reach a server — critical when the source contains bank routing numbers, medical notes, or anything you would not paste into an unknown SaaS form.

When to use this tool

Extracting a specific exhibit from a court filing

A paralegal receives a 240-page consolidated brief and needs to pull out Exhibit C (pages 88 to 104) to send to an expert witness. Split by range, save as Exhibit_C.pdf, attach to the expert's intake email without sending the entire sealed filing.

Breaking a scanned receipt batch by month

A small-business owner scans 48 receipts as a single 48-page PDF from a Fujitsu ScanSnap, then splits by month for the accountant — pages 1-12 for January, 13-20 for February, and so on. Each month becomes its own file matched to the bookkeeping period.

Sending just the signature page for counter-signature

A contract administrator gets a 30-page agreement back with the other party's signature on page 30. Split to extract only page 30 to send to the internal signatory, who signs and returns a 1-page PDF that gets merged back into the full document with the pdf-merger.

Splitting a closing disclosure for underwriting review

A mortgage officer receives a 180-page closing package and underwriting only needs pages 42-58 (the appraisal report) plus pages 120-135 (the title commitment). Two range splits produce the 17-page and 16-page subsets each under 1MB for the underwriter's portal.

Archiving chapters from an ebook or manual

A technical writer pulls each chapter from a 400-page product manual into its own PDF so internal search indexes each chapter separately. Pages 1-28 become chapter_1.pdf, pages 29-54 become chapter_2.pdf, and so on, each with the chapter's bookmarks preserved.

How it works

  1. 1

    Source is parsed once into an in-memory PDDocument

    pdf-lib's PDFDocument.load parses the file once regardless of how many splits you request. The page tree, outline dictionary, and resource catalog are held in JavaScript heap so subsequent range extractions reuse the same parsed objects rather than re-reading the file for each split.

  2. 2

    Each range creates a fresh output document

    For every range you define we construct a new PDFDocument via PDFDocument.create, then copyPages() the selected indices from the source. Page rotation (pre-applied via /Rotate dictionary entries), font subsets, and inline images carry through the copy. The source document stays untouched, so you can preview the split then adjust ranges without re-parsing.

  3. 3

    Outputs are zipped when there are more than three

    Single-range splits download as a standalone PDF via Blob + URL.createObjectURL. When you define four or more ranges we assemble them into a zip using JSZip and trigger one download, because browsers throttle multiple download prompts per page and would otherwise ask you to approve each one. The zip is built in memory — no temp files, no server round trip.

Honest limitations

  • · Encrypted PDFs must be unlocked before splitting; pdf-lib will throw a PasswordRequired error even for owner-password files that nominally allow extraction.
  • · Form field values tied to pages outside the selected range are dropped, and form field references that span the split boundary will produce orphaned widgets in the output.
  • · Digital signatures on the source document invalidate in every split output because the signed byte-range no longer matches; re-signing the extracted subset is required if signature validity matters.

Pro tips

Use negative indexing for tail splits

When you do not know the final page count ahead of time (scanned documents, combined PDFs of variable length), the splitter accepts ranges like '150-end' or '-10' (last ten pages). This saves the step of opening Adobe to check how many pages the file has before defining the range. Useful when scripting splits across a batch of monthly reports that each vary between 40 and 80 pages — the 'first 5 pages, then pages 6-end' pattern works across all of them without editing the range for each file.

Split before compressing to save memory

If you have a 500MB PDF and only need a 20-page subset, split first and then run the output through the pdf-compressor. Compressing a 500MB file in-browser can exhaust heap on devices with under 8GB of RAM because pdf-lib holds the full document tree plus a working buffer for re-encoding. A 20-page subset might only be 15MB and compresses comfortably. Order matters for large files: split, compress, or split, OCR, not the reverse.

Bookmarks in the kept range are preserved, but not section-relative

When you extract pages 100-150 from a 300-page source, any bookmarks that pointed into that range survive and their page destinations are remapped (bookmark for page 112 now points to page 13 in the split output). Bookmarks outside the range are dropped to avoid broken references. If your source had a hierarchical outline (Part 1 → Chapter 3 → Section A) and your split spans only Section A, the parent hierarchy is flattened and only the leaf bookmarks inside the range remain visible in the outline pane.

Frequently asked questions

What happens to bookmarks that point outside my selected range?

They are pruned from the output's outline dictionary. If your source has a 20-item outline and your split includes pages 40-60 which only 3 of those outline entries point into, the split output will have an outline with exactly those 3 entries (remapped to the new page numbers). Parent entries with no remaining children collapse away so Adobe Reader does not show empty folders. This matches how Adobe Acrobat's extract-pages feature behaves. If you want the full outline with dead references stripped, extract then re-add bookmarks manually in Acrobat.

Can I split a password-protected PDF without removing the password first?

No. pdf-lib requires the document to be decrypted before it can access the page tree, and pdf-lib intentionally does not accept a decryption password parameter — it expects an unencrypted input. Use the pdf-password-remover first (assuming you know the password and have authority to remove it), then run the unlocked file through the splitter. The same applies to owner-password-protected files that technically allow page extraction: pdf-lib treats any encryption as a blocker rather than attempting partial decryption.

Will the split preserve per-page rotation if my source has mixed orientations?

Yes. Page rotation in PDF is stored as a /Rotate attribute on each page object (or inherited from the parent page tree node). When pdf-lib copies pages via copyPages, the /Rotate value travels with the page, so a landscape page that was rotated 90 degrees in the source remains landscape at 90 degrees in the split output. This differs from image-based rasterization approaches which would bake the rotation into pixels — the split here is a true structural operation that preserves vector text and rotation metadata.

How large can the source PDF be before the splitter struggles?

Splitting is less memory-intensive than merging because we only parse the source once and the output is a subset. In practice, 300MB source files split cleanly on a laptop with 16GB RAM; 500MB files work on most desktops but may chug during the initial parse. Above 1GB you should pre-split using a command-line tool like pdftk or qpdf where you have proper memory controls. The hard browser limit is ArrayBuffer size (usually 2GB on 32-bit browser builds, higher on 64-bit) but practical heap pressure bites far earlier.

Are the split outputs uploaded anywhere for processing?

No. The splitter runs entirely inside your browser tab using pdf-lib.js. The file you select is read via FileReader into an ArrayBuffer, parsed in JavaScript, and the split outputs are generated as Blobs that download locally. There is no API call, no temporary server storage, no telemetry containing document contents. This matters when the source is under NDA, contains PHI subject to HIPAA, or includes financial data like account numbers that regulated industries cannot send to third-party SaaS tools. Inspect the Network tab in devtools while splitting to verify zero outbound requests contain the file.

Splitting is the inverse of merging and the two tools often appear in the same workflow. After splitting a large document to extract a subset, the pdf-compressor trims the output for email attachment caps (Gmail 25MB, Outlook 20MB). If the subset needs different page rotation, rotate-pdf handles that without re-splitting. When splits need to be recombined in a new order, pipe back through pdf-merger. And for documents that were signed or restricted, pdf-password-remover comes first in the chain — you cannot split an encrypted PDF without unlocking it first.

Advertisement