python - 中途拆分 PDF 页面并重新组合?
问题描述
我现在没有足够的声誉分数来回答我发现的问题 - 如何使用 python 将 pdf 页面分成两半并重新组合以进行进一步处理..
#!/usr/bin/env python
'''
Chops each page in half, e.g. if a source were
created in booklet form, you could extract individual
pages, and re-combines it
'''
from PyPDF2 import PdfFileWriter,PdfFileReader,PdfFileMerger
#split left
with open("docu.pdf", "rb") as in_f:
input1 = PdfFileReader(in_f)
output = PdfFileWriter()
numPages = input1.getNumPages()
for i in range(numPages):
page = input1.getPage(i)
page.cropBox.lowerLeft = (60, 50)
page.cropBox.upperRight = (305, 700)
output.addPage(page)
with open("left.pdf", "wb") as out_f:
output.write(out_f)
#split right
with open("docu.pdf", "rb") as in_f:
input1 = PdfFileReader(in_f)
output = PdfFileWriter()
numPages = input1.getNumPages()
for i in range(numPages):
page = input1.getPage(i)
page.cropBox.lowerLeft = (300, 50)
page.cropBox.upperRight = (540, 700)
output.addPage(page)
with open("right.pdf", "wb") as out_f:
output.write(out_f)
#combine splitted files
input1 = PdfFileReader(open("left.pdf","rb"))
input2 = PdfFileReader(open("right.pdf","rb"))
output = PdfFileWriter()
numPages = input1.getNumPages()
for i in range(numPages):
l = input1.getPage(i)
output.addPage(l)
r = input2.getPage(i)
output.addPage(r)
with open("out.pdf", "wb") as out_f:
output.write(out_f)
注意:裁剪参数是特定于您的 PDF 的,因此请在执行程序之前检查它。
进一步:现在,您可以使用此文档轻松提取文本,而无需将列相互合并 - 提取混乱..
解决方案
推荐阅读
- azure - Azure Active Directory 添加分配按钮灰显
- java - 通过 Java Android 撰写电子邮件 - 尝试以设备管理客户端为目标
- autohotkey - AHK - 如何创建与网站按钮交互的脚本
- android - 使用来自 GeoServer 的自定义 Tiles 在 Android 应用程序中使用 google-maps sdk
- hyperledger-fabric - 如何在 Hyperledger Fabric 中获取 LeveDB 中的下一个序列键
- vba - PowerPoint幻灯片逃脱vba
- python - 如何获取一维 numpy 数组并将其转换为具有特定名称的 DF
- ruby-on-rails - 如何导出全局scss变量文件以导入Rails 6 webpacker中的所有scss文件
- assembly - MOV 8 位到 16 位寄存器(al 到 bx)
- powerbi - 前几个月的 Power BI 累计和