You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
929 B
Python

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)