gpt4 book ai didi

python - 为什么我的代码不能正确拆分扫描的 pdf 中的每一页?

转载 作者:太空狗 更新时间:2023-10-29 20:23:19 26 4
gpt4 key购买 nike

更新:感谢 stardt 的脚本! pdf是另一页的一页。我在另一个上试过这个脚本,它也正确地吐出每个 pdf 页面,但页码的顺序有时是正确的,有时是错误的。比如pdf文件的第25-28页,打印出来的页码是14、15、17,都是16。我想知道为什么?整个pdf可以从http://download304.mediafire.com/u6ewhjt77lzg/bgf8uzvxatckycn/3.pdf下载。

Original: 我有一个扫描的 pdf,其中两个纸质页面并排放置在一个 pdf 页面中。我想将 pdf 页面分成两部分,原来的左半部分成为两个新 pdf 页面中较早的部分。 pdf 看起来像 enter image description here .

这是我的 Python 脚本,名为 un2up灵感来自 Gilles :

#!/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没有正确分割。

我还检查了变量的值 wh , p.mediaBox.upperRight 的输出, 他们是 5141224根据他们的实际比例,这看起来不正确。

文件可以从http://download851.mediafire.com/bdr4sv7v5nzg/raci13ct5w4c86j/page.pdf下载.

最佳答案

您的代码假设 p.mediaBox.lowerLeft 是 (0,0) 但实际上是 (0, 497)

这适用于您提供的文件:

#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
for i in range(input.getNumPages()):
p = input.getPage(i)
q = copy.copy(p)

bl = p.mediaBox.lowerLeft
ur = p.mediaBox.upperRight

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(q)
output.addPage(p)
else:
output.addPage(p)
output.addPage(q)

output.write(sys.stdout)

关于python - 为什么我的代码不能正确拆分扫描的 pdf 中的每一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com