Free PDF Splitter
Split a PDF into individual pages or extract specific page ranges. Download pages separately or as a ZIP.
Drop a file here, or click to browse
PDF · processed on your device
or press Ctrl+V to paste from your clipboard
Your files never leave your device. All processing happens locally in your browser.
Common uses
- Extract Specific Pages from PDFPull out individual pages or a custom range from a PDF — download only what you need.
- Split PDF into Individual PagesSeparate every page of a PDF into its own file — download all pages as a ZIP.
- Split PDF into Equal ChunksDivide a long PDF into equal-sized sections — useful for splitting reports, books, or batches.
- Split Invoice Batch PDFSeparate a merged invoice PDF into individual invoice files for routing, archiving, or emailing.
- Extract Book Chapters from PDFPull individual chapters out of a PDF book or manual by specifying custom page ranges.
How It Works
PDF splitting runs entirely in your browser using pdf-lib to copy pages into new documents and pdfjs-dist to render live thumbnails — your file is never uploaded to any server.
- 1pdf-lib reads the PDF structureWhen you drop a file, pdf-lib loads the raw ArrayBuffer and parses the PDF's internal page tree. It counts the pages and makes them available for copying without decoding every embedded font or image.
- 2pdfjs-dist renders page thumbnailsIn parallel, pdfjs-dist (loaded via CDN worker) rasterizes each page onto an offscreen Canvas element at a fixed 220 px width. The JPEG data URLs fill into the thumbnail grid progressively as each page renders, so you can start selecting pages before the whole document is ready.
- 3You choose a split strategyThree modes are available: split every page into its own PDF, split into chunks of N pages at a time, or cherry-pick individual pages by clicking thumbnails or typing a range like '1-3, 7, 10-12'. The thumbnail grid highlights selected pages and alternating chunk boundaries so the split plan is visible before you commit.
- 4pdf-lib writes new PDFs; JSZip bundles the outputFor each output group, pdf-lib creates a new PDFDocument and copies only the selected pages into it using copyPages(). When the result is multiple files, JSZip collects them into a single ZIP. A single extracted range downloads directly as a PDF without zipping.
Your PDF is read directly by your browser and never leaves your device — all splitting happens locally in JavaScript with no server involved.
Related Tools
Stem Splitter (Vocals, Drums, Bass)
Split a song into four stems — vocals, drums, bass and other instruments — with an AI model that runs in your browser. Download each stem as MP3 or WAV, or make a drumless or bassless practice mix. Your music is never uploaded.
Video Splitter
Split a long video into parts: pieces of 60 seconds for WhatsApp Status or Stories, a number of equal parts, or parts under a size such as 25 MB for email. Save each part or all as a ZIP. Runs in your browser; the video is not uploaded.
Add Page Numbers to PDF
Add page numbers to a PDF — choose the format, position, starting number, and font size. Runs entirely in your browser; the PDF is never uploaded.