需求

我又多个pdf章节,想合并成一个完整的pdf,并以各章节pdf的文件名当做书签名

解决方案

这里可以轻松的用 python 的 PyPDF2库来解决问题

解决步骤

1. 先安装python库

pip install  pypdf2

2. 然后运行代码

import os
import os.path
from PyPDF2 import PdfFileReader, PdfFileWriter
import time##########################找到 filepath 下的所有pdf,将地址返回########################
def getFileName(filepath):list1=[]for root, dirs, files in os.walk(filepath, topdown=False):for name in files:if name.endswith(".pdf"):list1.append(os.path.join(root, name))# file_list = glob.glob("*.pdf")# 默认安装字典序排序,也可以安装自定义的方式排序# file_list.sort()return list1##########################合并同一个文件夹下所有PDF文件########################
def MergePDF(filepath, outfile):output = PdfFileWriter()outputPages = 0pdf_fileName = getFileName(filepath)for each_file in pdf_fileName:print("adding %s" % each_file)# 读取源pdf文件input = PdfFileReader(open(each_file, "rb"))# 如果pdf文件已经加密,必须首先解密才能使用pyPdfif input.isEncrypted == True:input.decrypt("map")# 获得源pdf文件中页面总数pageCount = input.getNumPages()outputPages += pageCountprint("%s has %d pages" % (each_file, pageCount))# 分别将page添加到输出output中for iPage in range(pageCount):output.addPage(input.getPage(iPage))# 添加书签,以pdf名字命名书签output.addBookmark(title=each_file.split("\\")[-1], pagenum=outputPages - pageCount)print("All Pages Number: " + str(outputPages))# 最后写pdf文件outputStream = open(os.path.join(filepath, outfile), "wb")output.write(outputStream)outputStream.close()print("finished")if __name__ == '__main__':time1 = time.time()# 这里保存pdf文件的目录    file_dir = 'D:\\Users\\11655\\Desktop\\PDF'       # 这里保存生成文件的名字out = u"结果.pdf"#这个函数会遍历要求目录下的所有文件,将以  .pdf 结尾的所有pdf合并成一个新的pdf,并保存在 file_dir 目录下MergePDF(file_dir, out)time2 = time.time()print(u'总共耗时: %.4f s' % (time2 - time1))

python将多个pdf合并并保存书签相关推荐

  1. Python实现多个PDF合并,超好用,run它

    刚好需要合并几个PDF文件,奈何破电脑没装各种PDF编辑器,于是乎想到了超级强大的python,借助PyPDF2可以实现多个PDF的合并. 代码如下: import os from PyPDF2 im ...

  2. PYTHON:PYQT5 实现 pdf 合并与分割

    前言 在工作合生活中,会遇到处理pdf的时候,尤其pdf分割与合并时束手无策,下面就利用python实现pdf分割和合并,并且利用pyqt5来实现图形化展示. 将多个PDF文件合并成一个PDF文件的合 ...

  3. python从url获取pdf文件并保存在本地

    思路: 借助requests下载文件 将文件转换为字节流 将字节流保存在本地 代码案例 图片.pdf或文本什么的,思路是一样的: def get_file_from_url(url_file):imp ...

  4. python数据处理pdf_Python数据处理pdf (中文版带书签)、原书代码、数据集

    原博文 2018-08-08 16:02 − Python数据处理 前言 xiii第1 章 Python 简介 11.1 为什么选择Python 41.2 开始使用Python 41.2.1 Pyth ...

  5. Python机器学习实践指南pdf (中文版带书签)、原书代码、数据集

    Python机器学习实践指南 目 录  第1章Python机器学习的生态系统 1  1.1 数据科学/机器学习的工作  流程 2  1.1.1 获取 2  1.1.2 检查和探索 2  1.1.3 清 ...

  6. 使用python开发一个pdf合并工具

    老婆给女儿整理打印学习资料,希望能从很多个pdf中抽取一些页码来合并成一个文件, 就希望我能写一个程序来实现这个功能.刚好最近正在学习python,就用python开发了一个 pdf合并工具,也算是学 ...

  7. python文件下载器代码_GitHub - applechi/pythonCollection: python代码集合(文件下载器、pdf合并、极客时间专栏下载、掘金小册下载、新浪微博爬虫等)...

    json2mysql 这次更新了将一个json文件中的数据导入到mysql的脚本. 是用nodejs写的. 对应的文件是tomysql.js 有兴趣的同志可以研究下. pythonCollection ...

  8. python 保存pdf文件_PyPDF2读取PDF文件内容保存到本地TXT实例

    我就废话不多说了,大家还是直接看代码吧! from PyPDF2.pdf import PdfFileReader import pandas as pd def Pdf_to_txt(pdf): f ...

  9. Python办公自动化(三)|批量合并PDF

    分享一个实用的办公脚本:将多个PDF合并为一个PDF,例如我手上现在有如下3个PDF分册,需要整合成一个完整的PDF 如果换成你操作的话,是不是打开百度搜索:PDF合并,然后去第三方网站操作,可能会收 ...

  10. python PDF合并后大小不一致解决

    python PDF合并后大小不一致解决 使用的库是PyPDF2,python3.6 出现此问题的原因:最近在做一个工具有a.pdf和b.pdf两个文件,需要把b.pdf的第三页换成到a.pdf的倒数 ...

最新文章

  1. PMP 英文术语缩写
  2. 设计一算法,判断给定单链表的长度是奇数还是偶数
  3. 并查集路径压缩_第二十五天:并查集
  4. html中倒计时精确到毫秒,倒计时功能 精确到毫秒
  5. 计算机与pmac2型卡串口怎么通信,简述PMAC2型运动控制卡
  6. 2005年1月-2008年10月雅思A类(学术类)作文 TASK 2 考题汇总(10月4日更新)
  7. java中如何生成随机数
  8. 基于STM32F103的电子磁密码锁智能门禁原理图PCB程序设计
  9. 如何用手机压缩JPG格式图片?一步轻松搞定
  10. scrapy---下载中国大学慕课课程视频及文件
  11. FineReport缺失字体检测
  12. 当复制Web浏览器的SVN地址到TorioseSVN上时显示错误,无法解析URL
  13. Kali Linux中安装IDLE的方法
  14. Matlab sum( ) 函数
  15. 软件项目管理——人力资源管理
  16. 高通平台之TP代码分析
  17. App can't be opened because it is from an unidentified developer
  18. 全志android平台下的SDK快速移植
  19. 二相混合式步进电机闭环矢量控制simulink仿真(含仿真文件)
  20. select去重 sqlserver_sqlserver查询去掉重复数据的实现

热门文章

  1. 2022-2028年全球与中国硬盘驱动器存储模块行业深度分析
  2. java程序员必须安装的软件
  3. Active Directory的DirectoryEntry与DirectorySearcher初识及Filter语法
  4. Linux在线词典项目,实现注册,登陆,查询单词以及查询历史记录,退出查询等功能,(涉及网络编程,进程线程,文件io,sqlite)
  5. Python 的切片语法为什么不会出现索引越界呢?
  6. vb.net教程 3-1 窗体编程基础 1
  7. 小米note 卡在android,小米Note手机SIM卡怎么安装?小米Note安装手机SIM卡教程
  8. 项目部署发布CruiseControl工具介绍
  9. 网络收藏夹--用来收藏我经常访问的网站
  10. 《松本行弘的程序世界》精彩书摘