はなふぶき

利用PyPDF2模块穿插合并同PDF文件

有些扫描仪只能单面扫描,想要双面扫描只能分两次扫描,在合成一个PDF文档的时候,G……G……了,要将文档穿插合并起来,实现1、3、5……与2、4、6……的合并,下面的简单代码帮你能够实现。

需要安装PyPDF2模块

使用时,用的相对位置1.pdf和2.pdf,可以根据自己的需求更改,之所以提这句,因为你在CMD下运行会报错,因为CMD下用python命令,你的默认位置变了,为了代码的简洁没有添加太大适配。功能就是这个功能,其实可以配合UI做成一个EXE,但太小众了,供大家学习就好了。

如果你的PDF又需要倒序排列一下,可以先使用我的另一篇文章《利用PyPDF2模块倒序PDF文件》来实现。

# -*- coding:utf-8*-
# ┍━━━━━━━━━━━━━━━━┓
# ┃利用PyPDF2模块穿插合并同PDF文件 ┃
# ┃编制:lnzdl www.lnzdl.com ┃
# ┃ 2019.9.3┃
# ┗━━━━━━━━━━━━━━━━┛

import os
from PyPDF2 import PdfFileReader, PdfFileWriter
import time

# 合并同一目录下的所有PDF文件
def MergePDF(file1, file2, outfile):

output = PdfFileWriter()
outputPages = 0

if file2:
# 读取源PDF文件
input1 = PdfFileReader(open(file1, “rb”))
input2 = PdfFileReader(open(file2, “rb”))

# 获得源PDF文件中页面总数
pageCount1 = input1.getNumPages()
pageCount2 = input2.getNumPages()
outputPages = pageCount1+pageCount2
print(“文件一页数:%d”%pageCount1)
print(“文件二页数:%d”%pageCount2)
outputPages_num=0

# 分别将page添加到输出output中
for iPage in range(min(pageCount1,pageCount2)):
output.addPage(input1.getPage(iPage))
output.addPage(input2.getPage(iPage))
outputPages_num +=2

if pageCount2==pageCount1-1:
output.addPage(input2.getPage(iPage))
outputPages_num +=1
print(“合并后的总页数:%d”%outputPages_num)

# 写入到目标PDF文件
outputStream = open(outfile, “wb”)
output.write(outputStream)
outputStream.close()
print(“PDF文件合并完成!”)

else:
print(“没有可以合并的PDF文件!”)

# 主函数
def main():
time1 = time.time()
file1=”1.pdf”
file2=”2.pdf”
outfile = “Cheat_Sheets.pdf” # 输出的PDF文件的名称
MergePDF(file1, file2, outfile)
time2 = time.time()
print(‘总共耗时:%s s.’ %(time2 – time1))

main()

码字很辛苦,转载请注明来自はなふぶき博客《利用PyPDF2模块穿插合并同PDF文件》

评论