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
- Add your PDF — drag it into the tool above or click the upload button.
- Set the page range — type the pages you want, like
1-3or5, 7, 9, or pick individual pages by clicking their thumbnails. - Click Split (or Extract) — the tool processes everything locally using JavaScript in your browser.
- 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
| Situation | Use 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 | ⚠️ Maybe | Command-line tool like pdftk or mutool for speed |
| Combine two PDFs into one | ❌ No | Use a merge PDF tool instead |
| Reduce file size without changing pages | ❌ No | Use a PDF compressor |
| Edit the text inside a page | ❌ No | Use 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.