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

注意事项

下载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()

最后完成!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值