注意事项
下载PyPDF2不要下载太高的版本
这里建议下载3.0以下的版本,本文用的是2.11.2的版本
pip install PyPDF2==2.11.2
然后需要更改多个pdf文件的存放位置:(将此路径复制下来)
然后设置合成后的新pdf文件名字
如代码中所示,前两个路径需要更改。
完整代码
import os
from PyPDF2 import PdfFileReader, PdfFileWriter, PdfFileMerger
# 设置工作目录
NewDir = r"E:\AAAAAStudyData\计算机操作系统\王道操作系统课件ppt" # 工作目录路径
# 设置新的PDF文件名
NewName = r"E:\AAAAAStudyData\计算机操作系统\王道操作系统.pdf"
# 更改当前工作目录为NewDir
os.chdir(NewDir)
# 打印当前工作目录
print(os.getcwd())
# 用于存储PDF文件名的列表
fnames = []
# 遍历NewDir目录下的所有文件和子目录
for i in os.scandir(NewDir):
# 检查文件是否是文件且以.pdf结尾
if i.is_file() and i.name.endswith(".pdf"):
# 将符合条件的文件名添加到fnames列表中
fnames.append(i.name)
# 定义合并PDF的函数
def MergePdf():
# 创建一个PdfFileWriter对象,用于合并PDF页面
MergedPdf = PdfFileWriter()
# 初始化总页数
TotalPages = 0
# 遍历所有PDF文件
for fn in fnames:
try:
# 打开PDF文件以进行读取
input = PdfFileReader(open(fn, "rb"))
# 获取PDF文件的页数
pages = input.getNumPages()
# 如果文件不为空,将其添加到合并后的PDF中
if pages > 0:
TotalPages += pages
print(fn, "page numbers:%d" % pages)
for i in range(pages):
MergedPdf.addPage(input.getPage(i))
else:
print(fn, "is empty and will be skipped.")
except Exception as e:
print(f"Error processing {fn}: {e}")
# 打印总页数
print("total pages:", TotalPages)
# 创建一个新的PDF文件并将合并后的PDF写入该文件
NewFile = open(os.path.join(NewDir, NewName), "wb")
MergedPdf.write(NewFile)
NewFile.close()
# 调用MergePdf函数,执行PDF文件的合并操作
MergePdf()
最后完成!