基于PyPDF2实现自动化批量PDF文件合并【自动化】【PyPDF2】


在这里插入图片描述

场景

手动合并PDF文件是一个繁琐且耗时的过程,特别是当需要合并大量文件时。自动化工具可以迅速完成这一任务,从而节省宝贵的时间,使用可视化工具PDFShaper-Professional仍然无法摆脱全自动,仍需要人为干预去做文件选定,可参考使用以下代码做文件选定、合并,流程全自动化处理。

功能

doc1_1.pdf、…、doc1_200.pdf、… 、doc1001_1.pdf、… 、doc1001_100.pdf自动批量合并成doc1.pdf、… 、doc1001.pdf

说明

  • 确定一个合并顺序(这里基于数字后缀,可改),确定一个要合并的文件在名称上的共性(这里基于相同的前缀,可改),参考格式:
    docName_index.pdf

  • 创建输入目录(./pdf)
    doc1_1.pdf、…、doc1_200.pdf、… 、doc1001_1.pdf、… 、doc1001_100.pdf

  • 创建输出目录(./output)
    存放doc1.pdf、… 、doc1001.pdf

代码

import os
from PyPDF2 import PdfMerger



def merge_pdfs_by_prefix(directory, prefix):
    # 收集所有具有相同前缀的PDF文件
    pdf_files = [os.path.join(directory, f) for f in os.listdir(directory) if f.startswith(prefix) and f.endswith('.pdf')]
    
    # 对文件进行排序,确保合并的顺序是正确的
    pdf_files.sort(key=lambda x: int(''.join(filter(str.isdigit, os.path.basename(x)))))
    # print(pdf_files)
    # exit(0)
    
    merger = PdfMerger()
    for pdf_file in pdf_files:
        merger.append(pdf_file)
    
    output_pdf = f"output/{prefix}.pdf"
    merger.write(output_pdf)
    merger.close()
    print(f"Merged PDF files into {output_pdf}")


def extract_prefix(directory):
    #提取前缀集合
    res =[ item[:item.find('_')] for item in os.listdir(directory) ]
    res = list(set(res))
    # print(res)
    # exit(0)
    return res

if __name__ =='__main__':
    directory = './pdf'
    prefix_list = extract_prefix(directory)
    for prefix in prefix_list:
        merge_pdfs_by_prefix(directory, prefix)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来杯Sherry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值