PDF Merge, Split & Organize: Complete Page Management Guide
Β· 10 min read
Merging PDFs
Merging combines multiple PDF files into a single document. The pages from each file are appended in order.
What Gets Preserved
| Feature | qpdf | pdftk | pikepdf | Online tools |
|---|---|---|---|---|
| Page content | β | β | β | β |
| Bookmarks | β | β | β | Sometimes |
| Internal links | β | Partial | β | Rarely |
| Form fields | β | β | β | Sometimes |
| Annotations | β | β | β | Sometimes |
| Digital signatures | β (invalidated) | β | β | β |
Digital signatures are always invalidated when merging because the document content changes. This is by design β it proves the document was modified.
Use our PDF Merge tool to combine files in your browser.
Splitting PDFs
Splitting divides a PDF into multiple smaller files. Common split methods:
| Method | Description | Example |
|---|---|---|
| By page range | Extract specific pages | Pages 1-10 β file1.pdf, 11-20 β file2.pdf |
| Every N pages | Split into equal chunks | 100-page doc β 10 files of 10 pages |
| By file size | Split when size exceeds limit | Split at 5 MB for email attachments |
| By bookmarks | Split at chapter boundaries | Each chapter becomes a separate file |
| Single pages | Every page as a separate file | 100 pages β 100 files |
Try our PDF Split tool for visual page selection.
Extracting Pages
Extraction pulls specific pages from a PDF without modifying the original. This is the most common PDF operation β pulling a single page to share, or extracting a chapter from a textbook.
# qpdf: extract pages 5, 10-15, and 20
qpdf input.pdf --pages . 5,10-15,20 -- extracted.pdf
# pdftk: extract pages 1-3 and 7
pdftk input.pdf cat 1-3 7 output extracted.pdf
Use PDF Page Extractor for a visual interface.
Reordering and Rotating
Reordering Pages
# qpdf: reverse page order
qpdf input.pdf --pages . z-1 -- reversed.pdf
# pdftk: custom order (page 3, then 1, then 2)
pdftk input.pdf cat 3 1 2 output reordered.pdf
# pdftk: interleave two documents (odd/even for duplex scanning)
pdftk A=odd.pdf B=even.pdf shuffle A B output combined.pdf
The duplex scanning trick is useful: scan odd pages first, flip the stack, scan even pages, then interleave them into the correct order. Use PDF Page Reorder for drag-and-drop reordering.
Rotating Pages
# qpdf: rotate all pages 90Β° clockwise
qpdf input.pdf --rotate=+90 -- rotated.pdf
# qpdf: rotate only pages 2-5
qpdf input.pdf --rotate=+90:2-5 -- rotated.pdf
# pdftk: rotate page 1 to 90Β° east
pdftk input.pdf cat 1east 2-end output rotated.pdf
Our PDF Rotate tool lets you rotate individual pages visually.
CLI Tools Comparison
| Tool | Install | Speed | Features | License |
|---|---|---|---|---|
| qpdf | apt install qpdf | Fastest | Merge, split, rotate, encrypt, linearize, repair | Apache 2.0 |
| pdftk | apt install pdftk | Fast | Merge, split, rotate, encrypt, fill forms, stamps | GPL |
| Ghostscript | apt install ghostscript | Slow | Everything (but complex syntax) | AGPL |
| cpdf | Download binary | Fast | Rich page manipulation, bookmarks, watermarks | Commercial (free for non-commercial) |
qpdf Examples
# Merge multiple files
qpdf --empty --pages file1.pdf file2.pdf file3.pdf -- merged.pdf
# Merge specific pages from different files
qpdf --empty --pages file1.pdf 1-5 file2.pdf 3,7-9 -- combined.pdf
# Split into single pages
qpdf input.pdf --split-pages output_%d.pdf
# Split every 10 pages
qpdf input.pdf --split-pages=10 output_%d.pdf
# Repair a damaged PDF
qpdf --replace-input damaged.pdf
Python Examples
pikepdf (recommended)
import pikepdf
# Merge
pdf = pikepdf.new()
for file in ['doc1.pdf', 'doc2.pdf', 'doc3.pdf']:
src = pikepdf.open(file)
pdf.pages.extend(src.pages)
pdf.save('merged.pdf')
# Split by page range
src = pikepdf.open('input.pdf')
# Extract pages 5-10 (0-indexed)
dst = pikepdf.new()
for i in range(4, 10):
dst.pages.append(src.pages[i])
dst.save('pages_5_to_10.pdf')
# Rotate a page
src = pikepdf.open('input.pdf')
src.pages[0].rotate(90, relative=True)
src.save('rotated.pdf')
PyPDF2
from PyPDF2 import PdfReader, PdfWriter, PdfMerger
# Merge
merger = PdfMerger()
for file in ['doc1.pdf', 'doc2.pdf']:
merger.append(file)
merger.write('merged.pdf')
merger.close()
# Extract pages
reader = PdfReader('input.pdf')
writer = PdfWriter()
for page_num in [0, 2, 4]: # pages 1, 3, 5
writer.add_page(reader.pages[page_num])
with open('extracted.pdf', 'wb') as f:
writer.write(f)
Batch Processing
# Merge all PDFs in a directory (sorted by name)
qpdf --empty --pages $(ls -1 *.pdf | sort) -- merged.pdf
# Split all PDFs into single pages
for f in *.pdf; do
qpdf "$f" --split-pages "${f%.pdf}_page_%d.pdf"
done
# Extract first page from every PDF
for f in *.pdf; do
qpdf "$f" --pages . 1 -- "first_${f}"
done
# Rotate all landscape pages to portrait
for f in *.pdf; do
qpdf "$f" --rotate=+90:1-z -- "portrait_${f}"
done
Common Scenarios
Combining Scanned Documents
Scan each page as a separate PDF, then merge: qpdf --empty --pages scan_*.pdf -- combined.pdf. Follow with OCR to make the result searchable.
Splitting a Report into Chapters
If the PDF has bookmarks: use cpdf or a Python script to read the outline and split at each top-level bookmark. Without bookmarks: split by page ranges manually.
Removing Blank Pages
Identify blank pages (those with minimal content), then extract only non-blank pages. In Python, check if a page's content stream is empty or contains only whitespace commands.
Creating a Booklet
Rearrange pages for double-sided printing that folds into a booklet. pdftk and cpdf have booklet imposition features. Our PDF Booklet tool handles this automatically.
Frequently Asked Questions
How do I merge PDFs without losing quality?
PDF merging is lossless by default β tools like qpdf and pikepdf combine pages without recompressing images or altering content. Avoid tools that re-render pages as images, which does lose quality.
Can I split a PDF by bookmarks?
Yes. qpdf and pdftk can split at bookmark boundaries. In Python, pikepdf can read the document outline (bookmarks) and split accordingly. cpdf has a dedicated --split-bookmarks option.
How do I extract specific pages from a PDF?
Use qpdf: qpdf input.pdf --pages . 1,3,5-10 -- output.pdf. Or use ThePDF's page extractor for a visual drag-and-drop interface.
What is the fastest way to merge hundreds of PDFs?
qpdf is the fastest CLI tool: qpdf --empty --pages *.pdf -- merged.pdf. It processes files without fully parsing each one, making it significantly faster than pdftk or Ghostscript for large batches.
Does merging PDFs preserve bookmarks and links?
qpdf and pikepdf preserve bookmarks and most internal links. pdftk preserves bookmarks but may break cross-document links. Simple online tools often strip bookmarks entirely.