超详细将多个pdf文件合成一个pdf文件的python代码

注意事项

下载PyPDF2不要下载太高的版本

这里建议下载3.0以下的版本,本文用的是2.11.2的版本

pip install PyPDF2==2.11.2

然后需要更改多个pdf文件的存放位置:(将此路径复制下来)

超详细将多个pdf文件合成一个pdf文件的python代码_第1张图片

然后设置合成后的新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()

最后完成!

你可能感兴趣的:(python,开发语言,pdf)