from PyPDF2 import PdfWriter, PdfReader, PageObject reader = PdfReader('input.pdf') writer = PdfWriter() for index, page in enumerate(reader.pages): if index != 0 and index != len(reader.pages)-1: offset = page.mediabox.right / 2 # hack to clone the page as a copy not reference # https://github.com/py-pdf/PyPDF2/issues/100#issuecomment-378890266 left_page = PageObject.createBlankPage(None, page.mediaBox.getWidth(), page.mediaBox.getHeight()) left_page.mergePage(page) left_page.mediabox.right = offset writer.add_page(left_page) right_page = PageObject.createBlankPage(None, page.mediaBox.getWidth(), page.mediaBox.getHeight()) right_page.mergePage(page) right_page.mediabox.left = offset writer.add_page(right_page) else: writer.add_page(page) with open("output.pdf", "wb") as fp: writer.write(fp)