【python】自动合并pdf

使用python自动合并目录下的pdf文件,文件按照序号排序进行合并

代码运行

pip install PyPDF2
python pdf.py --dir_path /path/to/dir

参数说明

  • dir_path: 需要合并的pdf文件目录
  • file_name: 合并后的pdf文件名称,默认为merged.pdf

运行代码后,会在dir_path目录下生成合并后的pdf文件

'''
使用示例:
pip install PyPDF2
python pdf.py --dir_path /path/to/dir
'''

import argparse
from PyPDF2 import PdfMerger
from tqdm import tqdm
from pathlib import Path

def merge_pdfs_in_dir(dir_path: Path, file_name: str):
    # pdf_files = sorted([f for f in os.listdir(dir_path) if f.endswith(".pdf")])
    pdf_files = sorted([f.as_posix() for f in dir_path.glob("*.pdf")])
    print("PDF files:", pdf_files)
    merger = PdfMerger()

    for pdf in tqdm(pdf_files):
        pdf_path = dir_path / pdf
        file_size = pdf_path.stat().st_size
        if file_size:
            merger.append(pdf_path.as_posix())
        else:
            print(f"Skipping empty file: {pdf_path.as_posix()}")

    merged_file = dir_path / file_name
    if not merged_file.exists():
        merged_file.touch()

    merger.write(merged_file.as_posix())
    merger.close()

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--dir_path", type=str, help="Directory path containing PDF files")
    parser.add_argument("--file_name", type=str, default="merged.pdf", help="Output file name")

    args = parser.parse_args()
    dir_path = Path(args.dir_path)
    merge_pdfs_in_dir(dir_path, args.file_name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值