Skip to main content

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

Browse files

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.

  1. 1
    pdf-lib reads the PDF structure
    When 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.
  2. 2
    pdfjs-dist renders page thumbnails
    In 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.
  3. 3
    You choose a split strategy
    Three 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.
  4. 4
    pdf-lib writes new PDFs; JSZip bundles the output
    For 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

Frequently Asked Questions