#!/usr/bin/env python from pyPdf import PdfFileWriter, PdfFileReader output = PdfFileWriter() inputleft = PdfFileReader(file("document1.pdf", "rb")) inputright = PdfFileReader(file("document1.pdf", "rb")) def LeftHalfPage(p): p.mediaBox.upperRight = ( p.mediaBox.getUpperRight_x() / 2, p.mediaBox.getUpperRight_y() ) return p def RightHalfPage(p): p.mediaBox.lowerLeft = ( p.mediaBox.getUpperRight_x() / 2, p.mediaBox.getLowerLeft_y() ) return p ########################################################### output.addPage(LeftHalfPage(inputleft.getPage(0))) endPage = RightHalfPage(inputright.getPage(0)) for i in range(1, inputleft.getNumPages()): output.addPage(LeftHalfPage(inputleft.getPage(i))) output.addPage(RightHalfPage(inputright.getPage(i))) output.addPage(endPage) # print how many pages input1 has: print "document1.pdf has %s pages." % inputleft.getNumPages() # finally, write "output" to document-output.pdf outputStream = file("document-output.pdf", "wb") output.write(outputStream) outputStream.close()