Clioos › Guides › Split PDF

How to Split a PDF

By Clioos 团队

Splitting is just pulling pages out of one PDF into new files — every page on its own, or one range you pick. Tested 2 November 2026: a 6-page document split with poppler's pdfseparate into 6 one-page files, each confirmed at 1 page by pdfinfo, and pages 2–3 extracted as a 2-file range. Clioos does not offer a PDF splitting tool — this guide teaches the free offline method.

At a glance

Steps

  1. Install poppler: on Linux it is usually already there (pdfseparate -v); on macOS brew install poppler.
  2. Split every page: pdfseparate input.pdf part-%d.pdf — page 1 becomes part-1.pdf, page 2 becomes part-2.pdf, and so on.
  3. Check the result: pdfinfo part-1.pdf reports 1 page. On the test file, all 6 outputs reported exactly 1 page each.
  4. For one range only: pdfseparate -f 2 -l 3 input.pdf range-%d.pdf — on the test file this produced exactly 2 files, range-2.pdf and range-3.pdf, 1 page each.
  5. Alternative with Python: pypdf can pull a page range into one file (script in the section below) — useful when you want pages 1–2 as a single 2-page PDF rather than two files.

Worked example (tested 2 November 2026)

Test file: a 6-page A4 document, one chapter per page (3,931 bytes). Both tools ran on the same file.

MethodOutputOutput sizesPages check
pdfseparate, every page6 files (part-1 to part-6)1,359 / 1,356 / 1,356 / 1,356 / 1,356 / 1,356 bytes1 page each (pdfinfo)
pdfseparate -f 2 -l 32 files (range-2, range-3)1,356 / 1,358 bytes1 page each (pdfinfo)
pypdf, pages 1–2 as one file1 file (split-first2.pdf)1,485 bytes2 pages

Note the total: the 6 one-page parts sum to 8,139 bytes, more than double the 3,931-byte original. Splitting repeats shared objects (fonts, document info) in every file, so it is not a way to save space — if the goal is a smaller file, compress afterwards, which is a separate step.

The pypdf script (copy and run)

This is the exact script used for the range-as-one-file test: pages 1–2 of a 6-page file into a single 2-page PDF. Change the slice to pick any range (pages are 0-based in the script: pages[1:3] would be pages 2–3).

from pypdf import PdfReader, PdfWriter

reader = PdfReader("input.pdf")
writer = PdfWriter()
for page in reader.pages[:2]:
    writer.add_page(page)
with open("first2.pdf", "wb") as fh:
    writer.write(fh)
print("wrote first2.pdf:", len(reader.pages[:2]), "pages")

What it can't do

Free alternatives, honestly compared

Frequently asked questions

Is it free to split a PDF?

Yes — pdfseparate, pypdf and PDFsam Basic are all free and open source.

Can I split out just one page?

Yes: pdfseparate -f 5 -l 5 input.pdf out-%d.pdf extracts page 5 alone.

Will splitting make my files smaller?

Each part is smaller than the whole, but the parts together are larger than the original — shared objects repeat in every file. To shrink a file, compress it instead.

Can I split a PDF on my phone?

Browser tools work on phones, but they upload your files. For sensitive documents, split on a computer with an offline tool.

What if the PDF is password-protected?

Unlock it first with the password. Splitters can't open a password-protected file on their own.


Related guides: How to merge PDF files · How to compress a PDF · How to convert PDF to PNG · All guides · Tool: PDF Probe