Skip to content

Instantly share code, notes, and snippets.

@harajune
Created May 20, 2022 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save harajune/20a8b1141d62a1a59ed82def49600d47 to your computer and use it in GitHub Desktop.
Save harajune/20a8b1141d62a1a59ed82def49600d47 to your computer and use it in GitHub Desktop.
def write_merged_pdf(pdf1, pdf2, output_pdf, **kargs):
merger = PdfFileMerger()
num_pages1 = PdfFileReader(pdf1).getNumPages()
num_pages2 = PdfFileReader(pdf2).getNumPages()
reverse1 = kargs['reverse1'] or False
reverse2 = kargs['reverse2'] or False
# check file page difference
num_difference = num_pages1 - num_pages2
if num_difference < 0 or num_difference > 1:
raise Exception('Invalid page numbers: in1:%d in2:%d' % (num_pages1, num_pages2))
for index in range(num_pages1):
page1 = index
if reverse1:
page1 = num_pages1 - index - 1
print(page1)
merger.append(fileobj=pdf1, pages=(page1, page1 + 1))
# check if the merged document page is odd
if index <= num_pages2:
page2 = index
if reverse2:
page2 = num_pages2 - index - 1
merger.append(fileobj=pdf2, pages=(page2, page2 + 1))
merger.write(output_pdf)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment