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
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) |