Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Merge PDFs using Python
#!/usr/bin/env python
# Jacob Salmela
# Make PyPDF2 is installed: sudo easy_install PyPDF2
import sys
import os
from PyPDF2 import PdfFileMerger, PdfFileReader
merger = PdfFileMerger()
# Get the folder of the first file and that's where the merged PDF will go
dirname = os.path.dirname(sys.argv[1])
for f in sys.argv[1:]:
filename = os.path.basename(f)
print("Appending " + filename + "...")
# Append each page to the merger
merger.append(PdfFileReader(file(f, 'rb')))
# Close the file to prevent duplicate pages from being appended
# Write all the appends to a new file
merger.write(os.path.join(dirname, "merged.pdf"))
Copy link

felix822 commented Aug 25, 2016

Did you guys ever figure out the problem with pages being doubled up if original PDFs have more than one page? I'm combining 1 & 3 pages, and getting 8 total in merged.pdf

Copy link

znuc89 commented Mar 14, 2017

-: line 3: import: command not found
-: line 4: import: command not found
from: can't read /var/mail/PyPDF2
-: -c: line 7: syntax error near unexpected token (' -: -c: line 7: merger = PdfFileMerger()'

How to fix it?

Copy link

DeFilippis commented Aug 14, 2019

I'm getting an Import Error with PyPDF2, which I suspect is likely due to me having Python3 installed. Anybody know how to fix this? The usual methods did not work. (tried pip install, pip3 install, conda install, brew install)

Copy link

jacobsalmela commented Aug 15, 2019

Hmm, it's been so long since I even wrote this...

Copy link

Lovepankie commented Dec 18, 2019

The code runs but i cant seem to find the location of my merged pdf. Can someone here help me please?

Copy link

jacobsalmela commented May 23, 2020

If you remove the get selected finder items from the workflow, those duplicates don't happen anymore. I updated my blog post to reflect that.

Copy link

Lovepankie commented May 23, 2020

Thank you @jacobsalmela. I finally figured it out and then created a GUI version from your code. Thank you so much

Copy link

jacobsalmela commented May 23, 2020

NP. Glad it's still useful. I've been going through some of my old posts to fixup stuff like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment