PyPDF2 is a PDF toolkit which simplifies working with PDF documents in Python.
Although the library exposes a good deal of useful functionality, this post focuses on
how to merge two or more PDFs into a single document using functionality avilable in
Assume a directory containing several PDFs documents is to be compiled into a single document.
With PyPDF2, it's as simple as instantiating and instance of the
PdfFileMerger class and
append method. We demonstrate below:
import os import os.path from PyPDF2 import PdfFileMerger, PdfFileReader, PdfFileWriter # Directory containing files to merge. pdf_dir = "PDFs" # Generate list of files for merging. pdf_files = [os.path.join(pdf_dir, ii) for ii in os.listdir(pdf_dir) if ii.endswith(".pdf")] merger = PdfFileMerger() for ii in pdf_files: merger.append(PdfFileReader(open(ii, 'rb'))) # Write merged PDF to file. merger.write("merged.pdf") # Close merge instance. merger.close()