Eu tenho um arquivo pdf que foi criado em um formato de livreto. Destina-se a imprimir em papel A4 na orientação paisagem; Aqui estão duas páginas em pdf, que devem corresponder a quatro páginas no livro atual.
-------------------------------
| | |
| | |
| | |
| (1) | (3) |
| | |
| | |
| | |
-------------------------------
-------------------------------
| | |
| | |
| | |
| (4) | (2) |
| | |
| | |
| | |
-------------------------------
Os números entre colchetes correspondem à ordem das páginas individuais.
Eu sei que existem todos os tipos de comandos (pdfbook, pdfnup etc.) no linux (que provavelmente foi usado para criar este livreto em primeiro lugar). Como 'desmarco' - ou seja, eu gostaria de fazer um documento em PDF a partir deste, onde cada página individual do produto final é uma página individual do pdf, ordenada da maneira usual.
Editar
Graças a Gilles, consegui usar o seguinte código:
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
second_half = []
for i in range(0,input.getNumPages()):
p = input.getPage(i)
q = copy.copy(p)
print >> sys.stderr, 'splitting page',i
print >> sys.stderr, '\tlowerLeft:',p.mediaBox.lowerLeft
print >> sys.stderr, '\tupperRight:',p.mediaBox.upperRight
p.mediaBox.upperRight = (ur[0], (bl[1]+ur[1])/2)
p.mediaBox.lowerLeft = bl
q.mediaBox.upperRight = ur
q.mediaBox.lowerLeft = (bl[0], (bl[1]+ur[1])/2)
if i % 2 == 0:
output.addPage(p)
qold = q
else:
output.addPage(q)
output.addPage(qold)
output.addPage(p)
output.write(sys.stdout)