更新:感谢stardt的脚本工作! pdf是另一个页面。我在另一个脚本上尝试了脚本,它也正确地吐出每个pdf页面,但页码的顺序有时是正确的,有时是错误的。例如,在pdf文件的第25-28页中,打印的页码是14,15,17,16。我想知道为什么?整个pdf可以从http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf为什么我的代码没有正确分割扫描的pdf中的每一页?
原始码:我有一个扫描的pdf,其中两个纸张并排放在一个PDF页面。我想将pdf页面分成两部分,最初的左半部分成为两个新的pdf页面中较早的部分。 pdf看起来像。
这是我的一个名为un2up
通过Gilles启发Python脚本:
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
q = copy.copy(p)
(w, h) = p.mediaBox.upperRight
p.mediaBox.upperLeft = (0, h/2)
p.mediaBox.upperRight = (w, h/2)
p.mediaBox.lowerRight = (w, 0)
p.mediaBox.lowerLeft = (0, 0)
q.mediaBox.upperLeft = (0, h)
q.mediaBox.upperRight = (w, h)
q.mediaBox.lowerRight = (w, h/2)
q.mediaBox.lowerLeft = (0, h/2)
output.addPage(q)
output.addPage(p)
output.write(sys.stdout)
我尝试了剧本中的PDF与命令是un2up <page.pdf> out.pdf
终端,但输出out.pdf
没有正确分割。
我还检查变量w
和h
的p.mediaBox.upperRight
输出的价值观,他们是514
和1224
不看的权利根据自己的实际比例。
该文件可以从http://download851.mediafire.com/bdr4sv7v5nzg/raci13ct5w4c86j/page.pdf下载。
谢谢!有用! pdf是另一个页面。我在另一个脚本上尝试了脚本,它也正确地吐出每个pdf页面,但页码的顺序有时是正确的,有时是错误的。例如,在pdf文件的第25-28页中,打印的页码是14,15,17,16。我想知道为什么?整个pdf可以从http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf – Tim
下载@Tim我更新了代码,以便它颠倒每隔一页的拆分顺序。这会正确地分割您的文件。 – stardt
谢谢! (1)你知道为什么我们每隔两页需要切换'p'和'q'页吗?这是其他pdf文件的共同点,或只是特定于此? (2)我还想知道如何理解pdf页面上的坐标系,即p.mediaBox.lowerLeft是我们在查看pdf文件时看到的实际左下角或右上角?是我们看到的沿水平或垂直方向的第一个坐标吗? – Tim