How to Merge, Split and Organise PDF Files (Easy Guide)

By Deepak·

You can merge, split and organise PDF files using free tools like PDF24, Smallpdf, or a few lines of Python — no expensive software required. This guide shows you exactly how, including the tricky edge cases most tutorials skip.

The Fastest Ways to Merge, Split and Organise PDF Files

Your choice of tool depends on how often you need to do this and whether the PDFs contain sensitive information.

Tool Best for Cost Uploads to cloud?
PDF24 Quick online jobs, all-in-one Free Yes (deleted after 1 hr)
Smallpdf Occasional use, clean UI Free (2/day) or $12/mo Yes (1 hr)
PDFsam Basic Offline, privacy-sensitive files Free, open source No
PyPDF2 / pypdf Automating repetitive tasks Free (Python library) No
Adobe Acrobat Heavy daily use, enterprise From $19.99/mo Optional

Privacy tip: If the PDF contains payslips, contracts, or medical records, use an offline tool (PDFsam or Python). Cloud tools delete files quickly, but offline is safer.

How to Merge PDF Files Step by Step

Merging combines two or more PDF documents into one file. Here's how to do it each way.

Online (PDF24 — no install needed)

  1. Go to PDF24 Merge PDF.
  2. Click Choose files and select your PDFs.
  3. Drag to reorder them — the top file becomes page 1.
  4. Click Merge PDF, then download.

Python (automate it — language: Python 3)

Install the library first:

pip install pypdf

Then run this script:

# merge_pdfs.py — Python 3
from pypdf import PdfWriter

writer = PdfWriter()

files_to_merge = ['report_jan.pdf', 'report_feb.pdf', 'report_mar.pdf']

for filename in files_to_merge:
    writer.append(filename)

with open('merged_report.pdf', 'wb') as output:
    writer.write(output)

print('Done! Saved as merged_report.pdf')

Run it with python merge_pdfs.py. The output file will be in the same folder. This handles hundreds of files just as easily as three.

How to Split a PDF Into Separate Pages or Sections

Splitting extracts specific pages — useful when someone sends you a 40-page document and you only need pages 5–12.

Online split (Smallpdf or PDF24)

  1. Open the Split PDF tool on your chosen site.
  2. Upload your file.
  3. Choose a split mode: by page range, every N pages, or extract single pages.
  4. Download the resulting files.

Python split by page range

# split_pdf.py — Python 3
from pypdf import PdfReader, PdfWriter

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

# Extract pages 5 to 12 (zero-indexed: pages 4 to 11)
for page_num in range(4, 12):
    writer.add_page(reader.pages[page_num])

with open('pages_5_to_12.pdf', 'wb') as output:
    writer.write(output)

print('Extracted pages 5-12 successfully.')

Change the range(4, 12) numbers to grab any pages you need. Page numbering in the PDF spec starts at 0, so page 1 of the document is index 0 in code.

How to Organise (Reorder and Delete) Pages in a PDF

Reorganising means changing the order of pages, removing blank ones, or rotating a page that scanned sideways.

PDFsam Basic is the best free desktop option for this. After installing it:

  1. Open PDFsam and choose Visual mode (shows page thumbnails).
  2. Drag pages into the order you want.
  3. Right-click any page to delete or rotate it.
  4. Save the new file.

To rotate a page in Python:

# rotate_page.py — Python 3
from pypdf import PdfReader, PdfWriter

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

for i, page in enumerate(reader.pages):
    if i == 0:  # rotate only the first page
        page.rotate(90)  # 90, 180, or 270 degrees
    writer.add_page(page)

with open('fixed_orientation.pdf', 'wb') as output:
    writer.write(output)

Common Mistakes to Avoid

  • Uploading confidential files to a public tool. Even a 1-hour deletion window is a risk for sensitive data. Use an offline option.
  • Forgetting zero-based page indexing in code. If you want page 1, use index 0. Getting this wrong silently extracts the wrong pages.
  • Merging password-protected PDFs. Most tools fail silently or throw a generic error. Decrypt the PDF first — pypdf's documentation covers decryption if you have the password.
  • Huge file sizes after merging. PDFs with embedded high-res images balloon quickly. Run the merged file through a compressor (PDF24 has one) afterwards.
  • Losing hyperlinks or bookmarks. Splitting a PDF often removes internal navigation. Adobe Acrobat preserves these best; most free tools do not.

What's the Real Time and Money Saving?

Manually copying pages between PDFs takes around 3–5 minutes per document. A Python script that auto-merges 50 monthly reports runs in under 2 seconds and never makes a copy-paste mistake. At even a modest salary, that's real money saved each month — especially for accounts, legal, or operations teams who handle stacks of PDFs weekly.

If you manage finances alongside paperwork, our Step-Up SIP Calculator can show you how those time savings, reinvested, compound into real wealth over time.

Frequently Asked Questions

What is the best free tool to merge PDF files?

PDF24 is the best all-round free option for most people. It handles merging, splitting, compressing and organising in one place, works entirely in the browser, and does not require an account. For offline use, PDFsam Basic is the top free choice because files never leave your computer.

Can I merge PDFs without uploading them to a website?

Yes. PDFsam Basic (Windows, Mac, Linux) and the pypdf Python library both work completely offline. Your files stay on your machine. This is the right choice for contracts, medical records, or any document you would not email to a stranger.

Why does my merged PDF have a much larger file size?

Each source PDF embeds its own fonts and images, and merging stacks them without deduplication. The merged file can be 2–3× the sum of the originals if the same font is embedded multiple times. Run the output through a PDF compressor — PDF24's compress tool or Ghostscript on the command line both reduce size significantly.

How do I split a PDF into individual pages?

Online: use the Split PDF tool on PDF24 or Smallpdf and choose the 'extract all pages' option — each page becomes its own file. In Python, loop through reader.pages and write each page to a separate PdfWriter output file. The pypdf documentation has a working example.