Split PDF – Extract Pages from Any PDF Free Online

Split a PDF and extract only the pages you need — free, no signup, and 100% private. Your file never leaves your browser. Try it now.

Pull out exactly the pages you need — no fuss, no signup

Upload your PDF, choose which pages to keep, and download a clean new file in seconds. Works right in your browser, so your document is never sent to any server and stays completely private.

How to split a PDF

  1. Add your PDF — drag it into the tool above or click the upload button.
  2. Set the page range — type the pages you want, like 1-3 or 5, 7, 9, or pick individual pages by clicking their thumbnails.
  3. Click Split (or Extract) — the tool processes everything locally using JavaScript in your browser.
  4. Download your file — save the trimmed PDF or grab each extracted page as a separate file.

Worked example: extracting a single chapter

Say you have a 120-page product manual and you only need chapter 3, which runs from page 22 to page 38.

  • Input: manual.pdf — 120 pages, 14 MB
  • Page range entered: 22-38
  • Output: manual_pages_22-38.pdf — 17 pages, roughly 2 MB, fully selectable text intact

The result opens in any PDF reader exactly as those pages appeared in the original — fonts, images, and layout unchanged.

How to split a PDF in Python or JavaScript

If you need to automate this in code, here are the shortest working approaches.

Python (pypdf library)

# pip install pypdf
from pypdf import PdfReader, PdfWriter

reader = PdfReader('manual.pdf')
writer = PdfWriter()

# Extract pages 22-38 (0-indexed, so 21-37)
for page_num in range(21, 38):
    writer.add_page(reader.pages[page_num])

with open('chapter3.pdf', 'wb') as f:
    writer.write(f)

JavaScript (Node.js with pdf-lib)

// npm install pdf-lib
const { PDFDocument } = require('pdf-lib');
const fs = require('fs');

async function splitPdf() {
  const srcBytes = fs.readFileSync('manual.pdf');
  const srcDoc = await PDFDocument.load(srcBytes);
  const newDoc = await PDFDocument.create();

  // Copy pages 22-38 (0-indexed: 21-37)
  const pages = await newDoc.copyPages(srcDoc, [...Array(17).keys()].map(i => i + 21));
  pages.forEach(p => newDoc.addPage(p));

  const pdfBytes = await newDoc.save();
  fs.writeFileSync('chapter3.pdf', pdfBytes);
}
splitPdf();

The pypdf library follows the PDF specification maintained by the PDF Association. The pdf-lib library works in both Node.js and browsers, making it a popular choice for client-side PDF work.

How it works under the hood

The tool uses a JavaScript PDF engine loaded entirely in your browser tab. When you set a page range, it reads the compressed page stream from your file, copies only the chosen page objects (text, fonts, images), and writes a brand-new PDF — all without ever touching a remote server.

This is what makes it different from most online PDF tools: your file never leaves your device. Once the page finishes loading, you could even disconnect from the internet and the tool would still work.

When splitting is the right move — and when it isn't

SituationUse split?Better alternative
Share one chapter from a long report✅ Yes
Remove a confidential page before sending✅ Yes (delete that page)
Break a 500-page book into every single page⚠️ MaybeCommand-line tool like pdftk or mutool for speed
Combine two PDFs into one❌ NoUse a merge PDF tool instead
Reduce file size without changing pages❌ NoUse a PDF compressor
Edit the text inside a page❌ NoUse a PDF editor

Your file is 100% private

The PDF is processed entirely in your browser with JavaScript and is never uploaded to a server — unlike most online PDF tools that route your document through cloud storage. There is no account needed, no email required, and nothing is stored after you close the tab.

Ready to trim that document? Drop your PDF into the tool at the top of this page and download just the pages you need.

Frequently asked questions

Is this PDF splitter really free?+
Yes — completely free, no signup, no watermark on the output file, and no limit on how many times you use it.
Is my PDF uploaded to a server?+
No. The tool runs entirely in your browser using JavaScript. Your file never leaves your device and is not stored anywhere. You can even go offline after the page loads and it will still work.
Can I split a password-protected PDF?+
You need to unlock the PDF first (remove the password in a PDF reader like Adobe Acrobat or Preview on Mac) before uploading it here. The tool cannot bypass encryption.
Will splitting a PDF reduce its quality?+
No. Page content — including images, fonts, and vector graphics — is copied exactly from the original. No re-rendering or compression happens during the split.
What's the difference between splitting and extracting pages?+
'Split PDF' and 'extract pages' mean the same thing in practice: you pick a subset of pages and save them as a new file. Some tools use 'split' to mean dividing a PDF into multiple equal chunks and 'extract' to mean picking specific pages — but the underlying operation is identical.
Can I split a very large PDF (100+ MB)?+
It depends on your device's available memory. Modern laptops handle 100–200 MB files fine. Very large files (500 MB+) may be slow or cause the browser tab to run out of memory. For those, a desktop tool like pdftk or Adobe Acrobat is more reliable.
How do I split a PDF into individual pages (one file per page)?+
In the tool, look for a 'Split all pages' or 'Extract each page separately' option. It will produce a zip file containing one PDF per page. In Python, loop over reader.pages and write each to its own PdfWriter instance.
Can I delete a single page instead of extracting a range?+
Yes — just select all the pages except the one you want to remove, then download. The result is your original PDF with that page gone.