PDF Splitter
Split one PDF locally into custom ranges, single-page files or fixed-size packets, then verify overlaps before downloading a ZIP.{{ summaryTitle }}
{{ summaryLine }}
Split package ready
{{ outputRows.length }} PDFs- Source
- {{ selectedFile.name }}
- Source pages
- {{ computation.normalizedInputs.page_count }}
- Copied placements
- {{ computation.values.selected_placements }}
- ZIP size
- {{ formatBytes(zipSize) }}
| Packet | Selector | Source pages | Pages | Filename | Size | Copy |
|---|---|---|---|---|---|---|
| {{ row.packet }} | {{ row.token }} | {{ row.sourceLabel }} | {{ row.pageCount }} | {{ row.filename }} | {{ formatBytes(row.size) }} |
Introduction:
The twelfth page inside a PDF is not always the page printed as 12. Covers, Roman-numeral front matter, scanned inserts, and custom page labels can make the visible label differ from the file's physical page position. PDF splitting uses physical positions, counted from the first page in the file.
A good split plan begins with the purpose of each output. A report may need one file per chapter, a scanned intake pack may need one file per form, and a review queue may need equal-sized chunks. The source can remain unchanged while selected pages are copied into new PDFs.
| Plan | Best fit | Main check |
|---|---|---|
| Custom packets | Chapters, exhibits, form groups, or overlapping review sections | Every comma-separated packet has the intended physical pages |
| Every page | Single-page forms, labels, or manual page routing | The output count equals the source page count |
| Fixed size | Review, upload, or processing batches with a regular maximum length | The final packet may contain fewer pages |
Coverage and overlap answer different questions. Coverage counts how many distinct source pages appear anywhere in the plan. Overlap counts repeated placements across packets. Repeating page 1 in three packets can be intentional when it is a shared cover, but the overlap should still be reviewed because accidental duplication can confuse recipients and records.
Page copying is not the same as preserving the whole document. Bookmarks, page labels, attachments, forms, signatures, reading order, and accessibility structure can live outside the visible page artwork or depend on document-wide relationships. A packet may look correct while losing behaviour or navigation that existed in the source.
Open every generated PDF when boundaries matter. Check the first and last page, confirm repeated pages are intentional, test any form fields or links that must still work, and use a specialist PDF workflow when document-level signatures or accessibility structure must be retained.
How to Use This Tool:
Load one PDF, build a packet plan from physical page positions, then verify the manifest before creating the ZIP.
- Choose one Source PDF up to 150 MiB, or use the 12-page sample. The file is read in browser memory and its page count becomes the boundary for every range.
- Select Split mode. Choose custom packets for explicit ranges, every page for one-page files, or fixed pages per PDF for regular chunks.
- For custom packets, enter comma-separated selectors such as
1-3,7-,-4,odd,even,all, or*. Each selector creates one output PDF. - For fixed-size splitting, set Pages per PDF from 1 to 100. Add an optional output prefix and keep the Packet guard high enough for the planned count but no higher than 300.
- Review the planned PDF count, copied page placements, distinct covered pages, and overlaps. Fix an empty, descending, out-of-range, or unsupported selector before processing.
- Create the split package, inspect Packet manifest, and download the ZIP. Open the generated PDFs before distribution, especially when the source contains forms, bookmarks, signatures, attachments, or accessibility features.
Interpreting Results:
Split package reports how many PDFs were created and provides the ZIP. Treat that package as ready only after the manifest matches the intended document boundaries.
- Packet manifest identifies each selector, source-page list, page count, filename, and generated size.
- Overlaps above zero mean one or more source pages appear in multiple output PDFs. They are warnings, not automatic errors.
- Packet sizes makes an unexpectedly short or long output easier to spot, but it does not verify the page content.
A zero-overlap plan can still omit pages, and full coverage can still place pages in the wrong packets. Compare both coverage and packet membership with the source before relying on the ZIP.
Technical Details:
A split plan is an ordered list of packets, and every packet is an ordered list of one-based source-page positions. The plan is validated before any page is copied. Generated PDFs are then placed together in one ZIP archive.
Transformation Core
| Stage | Transformation | Evidence |
|---|---|---|
| Read source | Decode the selected PDF and count its physical pages. | Source filename, byte size, and page count |
| Expand plan | Turn custom selectors, every-page mode, or fixed-size mode into packet page arrays. | Packet count, selectors, page labels, and page counts |
| Check plan | Reject invalid ranges and plans above the selected packet guard. | Coverage, copied placements, and overlap count |
| Copy pages | Create a new PDF for each packet and copy its listed pages in order. | One generated filename and byte size per packet |
| Package | Add all generated PDFs to one ZIP with a sanitized prefix. | ZIP filename, total byte size, and manifest |
Formula Core
Fixed-size mode uses ceiling division because any remainder needs one final packet. Overlap is the difference between all copied placements and the number of distinct source pages covered.
For a 12-page source with 5 pages per PDF, ceiling division gives 3 packets: pages 1 to 5, 6 to 10, and 11 to 12. The model uses whole counts throughout and performs no numeric rounding beyond the ceiling operation.
Rule Core
| Selector | Expansion | Boundary rule |
|---|---|---|
n | One physical page | n must be from 1 through the source page count |
a-b | Every page from a through b, inclusive | Both ends must exist and b must be at least a |
a- | Page a through the final source page | a must exist |
-b | Page 1 through b | b must exist |
odd or even | All matching one-based page positions | The selector creates one packet |
all or * | Every source page | The selector creates one packet |
| Input | Accepted boundary | Failure behaviour |
|---|---|---|
| Source size | At most 150 MiB | The file is not loaded |
| Source pages | 1 to 100,000 | The plan is invalid |
| Pages per PDF | 1 to 100 inclusive | Fixed-size plan is invalid |
| Custom expression | At most 1,000 characters with no empty packet | The first invalid selector stops the plan |
| Packet guard | 1 to 300 inclusive | A plan above the selected guard is rejected |
| Output prefix | At most 100 characters before sanitizing | Processing remains unavailable until corrected |
Limitations and Privacy Notes:
PDF bytes are processed in the browser and are not uploaded by this tool. The generated files exist in browser memory until they are downloaded or the page session ends.
- Encrypted, damaged, or unusually large PDFs may fail because of format or device-memory limits even when they are below 150 MiB.
- Copied pages can lose or change document-level signatures, bookmarks, labels, forms, attachments, links, reading order, and accessibility structure.
- A visual page match does not prove that form behaviour, embedded files, or digital-signature validity survived.
- Filename sanitizing removes unsupported characters and does not preserve an arbitrary prefix byte for byte.
- The ZIP contains new PDFs; it is not a reversible edit record for the source document.
Worked Examples:
Overlapping review sections
For a 10-page source, the custom packets 1-4, 4-7, 7-10 create three outputs and repeat transition pages 4 and 7. The plan covers all 10 distinct pages and reports two overlaps. Verify that both repeated boundary pages are intentional before creating the ZIP.
Regular review batches
A 23-page report split at 5 pages per PDF produces five packets. The first four contain 5 pages and the last contains 3. The packet-size chart should show that shorter tail clearly; if it does not, compare the manifest with the physical source-page count.