使用python对指定文件夹下的pdf文件进行合并

news2024/11/19 19:35:25

使用python对指定文件夹下的pdf文件进行合并

  • 介绍
  • 效果
  • 代码

介绍

  • 对指定文件夹下的所有pdf文件进行合并成一个pdf文件。

效果

要合并的pdf文件,共计16个1页的pdf文件。
在这里插入图片描述
合并成功的pdf文件:一个16页的pdf文件。
在这里插入图片描述

代码

import os
from PyPDF2 import PdfFileReader, PdfWriter,PdfReader


def merge_pdfs(directory, output_filename):
    pdf_writer = PdfWriter()

    # 遍历指定文件夹中的所有PDF文件
    for filename in os.listdir(directory):
        if filename.endswith('.pdf'):
            pdf_file_path = os.path.join(directory, filename)
            pdf_reader = PdfReader(open(pdf_file_path, 'rb'))

            # 逐页添加到PDF写入器中
            for page_num in range(len(pdf_reader.pages)):
                pdf_writer.add_page(pdf_reader.pages[page_num])

                # 将合并后的PDF写入到输出文件中
    with open(output_filename, 'wb') as output_pdf:
        pdf_writer.write(output_pdf)

    # 使用函数


directory_path = './pdf_res'  # 替换为你的PDF文件夹路径
output_filename = 'merged_output.pdf'  # 合并后的PDF文件名
merge_pdfs(directory_path, output_filename)

print(f"PDFs merged successfully to {output_filename}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1692032.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达深度学习笔记:超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter tuning)3.4-3.5

目录 第二门课: 改善深层神经网络:超参数调试、正 则 化 以 及 优 化 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)第三周: 超 参 数 调 试 、 Batch 正 则 化 和 程 序 框 架(Hyperparameter …

Gin框架学习笔记(六)——gin中的日志使用

gin内置日志组件的使用 前言 在之前我们要使用Gin框架定义路由的时候我们一般会使用Default方法来实现,我们来看一下他的实现: func Default(opts ...OptionFunc) *Engine {debugPrintWARNINGDefault()engine : New()engine.Use(Logger(), Recovery())…

datasheet芯片数据手册—新手入门学习(二)【8-18】

参考芯片手册已经上传,可自行下载 因为芯片参考手册内容比较多,故再一次介绍本文内容主要讲解章节。 目录 8、内容介绍 命令真值表 9、Command Definitions 10、READ Operations (1)页面读取操作 (2&#xff…

Orangepi Zero2 linux系统摄像头设备文件名固定

文章目录 1. 寻找设备规则2. 使用udev规则修改挂载设备文件名称 问题: 在多次插拔usb摄像头或者在使用中不小心碰到或松了会导致设备文件名称变化,如从/dev/video1和/dev/video2变为/dev/video2和/dev/video3, 所以每次发生变化后都要充型修改代码或者重…

2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(下):多智能体开发

传送门: 《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(上):MetaGPT安装、单智能体开发》《2024.5组队学习——MetaGPT(0.8.1)智能体理论与实战(中)&…

高校网站群及融媒体中心建设方案

一、项目背景 随着信息技术的飞速发展,互联网已成为高校展示形象、传播信息、服务师生、沟通社会的重要渠道。然而,目前许多高校在网站建设和媒体传播方面存在以下问题: 网站分散、缺乏统一规划:各高校内部往往存在多个部门或学院…

移动云——让每个人都能享受云技术的魅力

一、引言 云技术的起源可以追溯到20世纪60年代和70年代,随着科技的发展,现在早就和所有人息息相关。在云技术的浪潮中,有这么一家厂商通过自己的努力,深耕云计算市场,不仅有各种各样的产品为开发者提供服务&#xff0…

E1载波:一种2.048Mbps速率的PCM载波

E1载波的基本帧由32个子信道组成 帧长为256个bit,分为32个相等时隙,一个时隙为8个bit。256/328 时隙的编号为CH0~CH31 全帧包含256位,且每一帧用 125us时间传送 E1载波支持的数据传输效率为2.048Mbps,用PCM编码(即 256bit/125us2.048Mbps…

融媒宝:群发自媒体平台的神器,注册送7天中级会员

近几年自媒体比较火,做自媒体往往需要发布文章或视频到多个平台,如手工复制粘贴逐一发布,委实费时费力、效率不高。今天就给大家分享一款提高自媒体运营效率的神器--融媒宝: 融媒宝简介 融媒宝是一款可免费使用的高效自媒体工具…

axios如何传递数组作为参数,后端又如何接收呢????

前端的参数是一个数组。 前端编写: 后端接收:

“大数据建模、分析、挖掘技术应用研修班”的通知!

随着2015年9月国务院发布了《关于印发促进大数据发展行动纲要的通知》,各类型数据呈现出了指数级增长,数据成了每个组织的命脉。今天所产生的数据比过去几年所产生的数据大好几个数量级,企业有了能够轻松访问和分析数据以提高性能的新机会&am…

力扣刷题---3146. 两个字符串的排列差

题目描述 给你两个字符串 s 和 t,每个字符串中的字符都不重复,且 t 是 s 的一个排列。 排列差 定义为 s 和 t 中每个字符在两个字符串中位置的绝对差值之和。 返回 s 和 t 之间的 排列差 。 示例 1: 输入:s “abc”, t “b…

新手做视频号小店,常见问题解答,看懂就明白做店逻辑了!

大家好,我是电商糖果 商家做视频号小店前期一定会反复咨询一些问题。 因为他们要提前做好调查,以防店铺运营的过程中出现问题。 糖果因为经常在网上分享自己做店的经验,所以就有很多朋友前来咨询过。 其实大家咨询的问题,反反…

利用AI技术做电商网赚,这些百万级赛道流量,你还不知道?!

大家好,我是向阳 AI技术的飞速扩展已经势不可挡,不管你承不承认,AI 已经毫无争议的在互联网中占有一席之地了 无论你是做内容产业的,还是做电商的,你现在都躲不开 AI。 现在互联网行业的竞争就是这么残酷 互联网行业…

YOLOv10最全使用教程(含ONNX和TensorRT推理)

论文题目:YOLOv10: Real-Time End-to-End Object Detection 研究单位:清华大学 论文链接:http://arxiv.org/abs/2405.14458 代码链接:https://github.com/THU-MIG/yolov10 作者提供的模型性能评价图,如下:…

【数据结构】神奇的二叉树

文章目录 前言1. 树形结构1.1 什么是树1.2 名词概念1.3 树的表现形式 2. 二叉树2.1 概念2.2 两种特殊的二叉树2.3 二叉树的性质 3. 二叉树的存储结构3.1 顺序存储3.2 链式存储 4. 二叉树的遍历4.1 前序遍历4.2 中序遍历4.3 后序遍历4.4 层序遍历 5. 遍历的代码实现5.1 递归实现…

机器学习模型可视化分析和诊断神器Yellowbrick

大家好,机器学习(ML)作为人工智能的核心,近来得到巨大应用,ML是使计算机能够在无需显式编程的情况下进行学习和预测或决策。ML算法通过学习历史数据模式,来对新的未见数据做出明智的预测或决策。然而,构建和训练ML模型…

ROS2学习——节点话题通信(2)

目录 一、ROS2节点 1.概念 2.实例 (1)ros2 run (2)ros2 node list (3)remapping重映射 (4)ros2 node info 二、话题 (1) ros2 topic list &#xf…

C语言内存函数(与上篇字符函数及字符串函数一起食用效果更佳哦~)

顾名思义,内存函数就是针对内存块(即一块内存)来处理的。 因此本篇所讲的四种内存函数: memcpy(内存拷贝)memmove(内存移动)memset(内存设置)memcmp&#x…

RocketMQ使用(3):消息重复

一、问题说明 发送时消息重复 当一条消息已被成功发送到服务端并完成持久化,此时出现了网络闪断或者客户端宕机,导致服务端对客户端应答失败。如果此时生产者意识到消息发送失败并尝试再次发送消息,消费者后续会收到两条内容相同并且Message…