PDF Splitter: Extract Pages Without Uploading

A long PDF rarely needs to stay whole. This page reads the file you pick, counts its pages, and builds one smaller PDF for each group you ask for, either by typing ranges such as 1-3,5,8- or by slicing the document into parts of a fixed size. Every part is written with pdf-lib in the tab and offered as its own download, so the original document never leaves the machine.

Split by Ranges or Every N Pages

One source, many parts All processing runs in your browser.

Source document

Pick one PDF file. Password-protected or damaged PDFs fail to load and are reported below.

No file loaded.

Split mode

Build parts

No split run yet.

How It Works

Loading a file runs pdf-lib in the tab and reads the page count. That count is the ceiling every range is checked against, and it appears next to the source label as soon as the parse finishes. A locked or damaged file never reaches that step, so the count stays empty and the error line explains why.

Custom ranges mode builds one part per comma group. A run of single pages such as 4,5,6 forms one part, a closed range such as 2-7 forms another, and an open range such as 8- runs to the last page. Each part receives the pages from its own group, and the group label shows the pages it holds.

Every N pages mode ignores the range box and slices the document from the offset onward. Size 3 with offset 1 on a ten-page file produces parts of pages 1-3, 4-6, 7-9, and 10. An offset of 0 is treated as page 1.

Each part is written after the previous one finishes, so the download links appear in order. Every link carries the name part-N.pdf and points at bytes held in browser memory until you save them or run another split.

Mode Input Parts produced
Custom ranges 1-3,5,8- One part per comma group
Every N pages Size and offset Equal slices from the offset on

Before and After

Before (one long document)
annual-report.pdf   12 pages
After (custom ranges run)
Source: 12 pages
3 parts, 9 pages selected
Part 1 (pages 1-3)  [ Download part 1 ]
Part 2 (pages 4-6)  [ Download part 2 ]
Part 3 (pages 8-12) [ Download part 3 ]
Before (bad range typed)
spec: 2-x,15-
"2-x" is not a valid page range
"15-" starts past page 12
After (every-N mode)
size 3, offset 1, 12 pages
4 parts, 12 pages selected
Part 1 (pages 1-3)
Part 2 (pages 4-6)
Part 3 (pages 7-9)
Part 4 (pages 10-12)

Use Cases

Scenario What to enter Result
Chapter extraction The page range of one chapter A single small PDF to share
Signature pages The last page of each signer Pages ready for a signature tool
Invoice batches Every N pages where N is invoices per sheet One file per invoice group
Scanned archive cuts A fixed slice size for upload limits Parts that fit a size cap
Review chunks Open ranges such as 40- for the rest A tail section for a reviewer

Common Mistakes

  • Typing ranges that start past the last page. The parser flags them in amber and those pages never appear in a part.
  • Leaving the offset at 0 and expecting page zero. Offsets start at page 1, and 0 is treated the same as 1.
  • Expecting a locked PDF to load. The parse fails, the source count never shows, and no groups can be built.
  • Reversing a range without reading the note. A spec such as 7-2 is reordered to 2-7 and the amber message says so.

Best Practices

  • Load the file first and read the source count before typing ranges, so every number you enter lands inside the document.
  • Use open ranges such as 8- when the end page may change between drafts of the same file.
  • Download each part before starting another split. The links from the last run are replaced as soon as you split again.
  • Pick even sizes in every-N mode when the page count is fixed, so the parts line up with the batches you send out.

Frequently Asked Questions

Does this splitter send my PDF anywhere?

No. The file is parsed with pdf-lib inside the tab, and each part is written locally. The download links point at object URLs held in browser memory, so nothing travels over the network.

What range syntax does the custom ranges box accept?

Use commas between groups. A single page is 5, a closed range is 2-7, and an open range like 8- runs from page 8 to the end. A leading dash such as -3 means pages 1 through 3. Reversed ranges are reordered and reported.

What does the offset do in every-N mode?

Offset sets the first page that starts a part. With size 3 and offset 2 on a 10-page file, the parts begin at page 2, so the first part holds pages 2 to 4 and the last holds page 10.

Why are some page numbers marked in amber?

Amber messages come from the range parser. They flag an empty group, a token that is not a valid range, or a range that starts past the last page. The valid groups still build; fix the flagged ones only if you wanted those pages.

Can I split a password-protected PDF?

Not while it is locked. pdf-lib refuses encrypted files, so the source will not load and the page count never appears. Remove the password in a desktop tool first, then load that copy here.

Do the parts keep the original page size and fonts?

Yes. Each part copies the selected page objects from the source, so media boxes, fonts, and images carry over unchanged. Bookmarks and form fields are not rebuilt, so check interactive elements after splitting.

How many parts can I build at once?

There is no fixed count. Each part is built one after another in a single pass, and memory holds every open document. Very large jobs work better when you split the range spec into a few runs and download each set before the next.