Skip to content

PDF Manipulation - Merging and Splitting

A common modern option is pypdf (successor of PyPDF2).

pdf_merge.py
from pypdf import PdfMerger
 
merger = PdfMerger()
merger.append("a.pdf")
merger.append("b.pdf")
 
merger.write("merged.pdf")
merger.close()
pdf_split.py
from pypdf import PdfReader, PdfWriter
 
reader = PdfReader("input.pdf")
 
for i, page in enumerate(reader.pages, start=1):
    writer = PdfWriter()
    writer.add_page(page)
    with open(f"page_{i}.pdf", "wb") as f:
        writer.write(f)
  • encrypted PDFs need extra handling
  • layout/text extraction is a different problem (next page)

pch.coffeeTagline

pch.coffeeCta

pch.feedbackHeading

pch.feedbackSubheading