python实现多个pdf文件合并

打印发票时,需要将pdf合并成一个,单页两张打印。网上一些pdf合并逐渐收费,这玩意儿都能收费?自己写一个脚本使用。

实现代码:

输入pdf文件夹路径data_dir,统计目录下的"合并后的PDF"文件夹下,输出合并后的pdf文件。

python 复制代码
import os
import PyPDF2
import argparse

def merge_pdfs(paths, output):
    pdf_writer = PyPDF2.PdfWriter()

    for path in paths:
        pdf_reader = PyPDF2.PdfReader(path)
        for page in range(len(pdf_reader.pages)):
            pdf_writer.add_page(pdf_reader.pages[page])

    with open(output, 'wb') as out:
        pdf_writer.write(out)

def main(data_dir):
    names = os.listdir(data_dir)
    print("names:", names)

    file_paths = []
    for name in names:
        file_paths.append(os.path.join(data_dir, name))

    output = os.path.join(data_dir, "合并后的PDF/merge_%02d.pdf" % len(names))  # 合并后的PDF文件路径
    os.makedirs("./合并后的PDF", exist_ok=True)

    merge_pdfs(file_paths, output)
    print("合并后文件:", output)

def argv_parse():
    parser = argparse.ArgumentParser(usage="it's usage PyPDF2.", description="pdf merge.")
    parser.add_argument("--data_dir", type=str, help="pdf file dir.")
    return parser.parse_args()

if __name__ == "__main__":
    argv = argv_parse()
    print("argv:", argv)
    main(argv.data_dir)
相关推荐
xj7573065337 分钟前
《python web开发 测试驱动方法》
开发语言·前端·python
叫我:松哥17 分钟前
基于Flask框架开发的智能旅游推荐平台,采用复合推荐算法,支持管理员、导游、普通用户三种角色
python·自然语言处理·flask·旅游·数据可视化·推荐算法·关联规则
IT 行者18 分钟前
Spring Boot 4.x 安全监控新篇章:基于 ObservationFilterChainDecorator 的可观测性实践
java·spring boot·后端
pyniu22 分钟前
Spring Boot租房管理系统
java·spring boot·后端
No0d1es26 分钟前
2025年12月 GESP CCF编程能力等级认证Python四级真题
开发语言·python·青少年编程·等级考试·gesp·ccf
love530love26 分钟前
EPGF 新手教程 13在 PyCharm(中文版 GUI)中创建 Hatch 项目环境,并把 Hatch 做成“项目自包含”(工具本地化为必做环节)
开发语言·ide·人工智能·windows·python·pycharm·hatch
野生技术架构师35 分钟前
TokenRetryHelper 详解与 Spring Boot 迁移方案
java·spring boot·后端
蚰蜒螟35 分钟前
Redis网络层深度解析:数据如何写回客户端
java·开发语言·bootstrap
廋到被风吹走41 分钟前
【Java】新特性最佳实践:避坑指南与性能优化
java·性能优化
效率客栈老秦41 分钟前
Python Trae提示词开发实战(2):2026 最新 10个自动化批处理场景 + 完整代码
人工智能·python·ai·prompt·trae