我有一个制成小册子格式的pdf文件。它旨在横向打印在A4纸上;这是pdf中的两页,应该与实际书籍中的四页相对应。
-------------------------------
| | |
| | |
| | |
| (1) | (3) |
| | |
| | |
| | |
-------------------------------
-------------------------------
| | |
| | |
| | |
| (4) | (2) |
| | |
| | |
| | |
-------------------------------
方括号中的数字对应于各个页面的顺序。
我知道Linux上有各种各样的命令(pdfbook,pdfnup等)(最初可能是用来制作这本小册子的)。我如何“取消预订”它-也就是说,我想以此为基础生成pdf文档,其中最终产品的每个单独页面都是pdf的单独页面,以通常的方式进行排序。
编辑
感谢Gilles,我设法使用了以下代码:
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)
1
我认为这应该去superuser.com
—
Adam Zalcman 2012年
@AdamZalcman为什么?他正在寻找Linux程序
—
Michael Mrozek
您可以将这个问题的答案(由Gilles修改)以适应您的问题,即创建一个PyPdf脚本。
—
sr_
您确定没有交换第3页和第4页吗?我从事印刷工作;该布局没有任何意义
—
。...–通配符