Skip to content

Instantly share code, notes, and snippets.

@Geekfish
Created January 31, 2017 16:07
Show Gist options
  • Save Geekfish/a4fe4efd59e158f55ca5c76479831c8d to your computer and use it in GitHub Desktop.
Save Geekfish/a4fe4efd59e158f55ca5c76479831c8d to your computer and use it in GitHub Desktop.

Revisions

  1. Geekfish created this gist Jan 31, 2017.
    19 changes: 19 additions & 0 deletions merge_pdfs.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    from PyPDF2 import PdfFileReader, PdfFileWriter
    from PyPDF2.pdf import PageObject


    reader = PdfFileReader(open("invoice.pdf",'rb'))
    invoice_page = reader.getPage(0)
    sup_reader = PdfFileReader(open("supplement.pdf",'rb'))
    sup_page = sup_reader.getPage(1) # We pick the second page here

    translated_page = PageObject.createBlankPage(None, sup_page.mediaBox.getWidth(), sup_page.mediaBox.getHeight())
    translated_page.mergeScaledTranslatedPage(sup_page, 1, 0, -400) # -400 is approximate mid-page

    translated_page.mergePage(invoice_page)

    writer = PdfFileWriter()
    writer.addPage(translated_page)

    with open('out.pdf', 'wb') as f:
    writer.write(f)