前言

我们在学习和工作中经常会遇到对PDF文件的一些编辑需求,例如在整理pdf文件时需要把多个pdf文件进行合并,或者提取某个pdf文件中某些页面。这时如果你想到用python来解决这些个问题,那么下面就给出大家一些我的处理方法,以供参考。

# 导入相关库
import os, PyPDF2, re
from PyPDF2 import PdfFileMerger#合并pdf函数
def connect_pdf():# 将需要合并的pdf文件放到一个文件夹中,最好按顺序1.pdf,2.pdf,3.pdf....类似命名target_path = r'D:\待合并文件'# 使用os.listdir方法获取制定目录下的所有pdf文件名称(获取文件名以.pdf结尾的文件)pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]# 把字符串按数字顺序再排序(这个就是把需要合并文件按数字顺序命名的原因)# 下面的正则表达式是获取文件名中的数字,再以数字从小到大排序需要合并的文件pdf_lst.sort(key = lambda i:int(re.match(r'(\d+)', i).group()))# 使用os.path.join方法拼接成绝对路径pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]# 创建PdfFileMerger对象,这是专门用来合并pdf文件的对象file_merger = PdfFileMerger()for pdf in pdf_lst:file_merger.append(pdf)     # 合并pdf文件print(pdf, "合并成功!!")# 使用write方法将所有pdf文件写入到一个文件file_merger.write(r"C:\Users\Desktop\合并后文件.pdf")# 读取pdf指定页面
def get_Specify_pdfs():# 需要获取页面的目标pdf文件path = r"C:\Users\Desktop\target.pdf"# 使用with open()的方式打开文件可以不用手动关闭文件对象with open(path, "rb") as  fp1:  # 以读二进制模式打开pdf文件# 调用PyPDF2.PdfFileReader()方法,获取该PDF的PdfFileReader对象pdfreader = PyPDF2.PdfFileReader(fp1)    # 该pdf文档的总页数保存在 PdfFileReader 对象的 numPages 属性中,打印页数print("该pdf文件总页数是:%s 页!" % pdfreader.numPages)# 新建一个PdfFileWriter对象,它表示一个空白的PDF文档对象,用来写入目标pdfpdfWriter = PyPDF2.PdfFileWriter()  # PdfFileWriter对象# 通过getPage()方法获取想要的pdf页,生成Page对象page_one = pdfreader.getPage(0) # 获取pdf的第一页pdfWriter.addPage(page_one)     # 把Page对象添加到PdfFileWriter对象中# 假如要获取pdf文件的3,6,9页# page_list = [2, 5, 8]# for num in page_list:#     page_one = pdfreader.getPage(num)#     pdfWriter.addPage(page_one)     # 把Page对象添加到PdfFileWriter对象中# 打开一个pdf的输出路径with open(r"C:\Users\Desktop\提取后文件.pdf", 'wb') as fp2:pdfWriter.write(fp2)  # 把PdfFileWriter对象的内容保存到文件中print("pdf文件生成成功!")
if __name__ == "__main__":# 调用相应函数connect_pdf()    # 调用合并pdf函数get_Specify_pdfs()    # 调用提取pdf函数

上面的代码替换文件路径后可以直接复制粘贴使用 ,如果你觉得对你有帮助,就点个赞吧。

Python 合并两个或多个pdf文件(获取pdf文件指定页)相关推荐

  1. python怎么合并多个excel表 视频_()如何用python合并两个excel表格

    ()如何用python合并两个excel表格 python合并excel表格视频教程2020-09-25 04:04:33人已围观 python实现excel合并 Created on Mon Mar ...

  2. python合并两个有序列表(list)

    python合并两个有序列表(list) 原来的列表是有序的合并之后的列表也要是有序的. 很多时候,我们会遇到一个问题,我们希望使用归并排序的归并函数,这是一个经典问题,在竞争性编程中经常出现.这种类 ...

  3. python合并两个字典的内容,使用update方法

    python合并两个字典的内容,使用update方法 update() 方法可使用一个字典所包含的键值对来更新己有的字典. 在执行 update() 方法时,如果被更新的字典中己包含对应的键值对,那么 ...

  4. python字典合并几种方式对比,Python合并两个字典的常用方法与效率比较

    本文实例讲述了Python合并两个字典的常用方法与效率比较.分享给大家供大家参考.具体分析如下: 下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试 #!/usr/bin/python ...

  5. Python合并两个列表,使两个列表拼接起来

    Python合并两个列表,使两个列表拼接起来 #Python合并两个列表# 法一: #Python合并两个列表,相加是拼接 list1=[1,2,3] list2=[4,5,6,7] list3=li ...

  6. Python合并两个相交的框

    Python合并两个相交的框 前言 前提条件 相关介绍 实验环境 Python合并两个相交的框 前言 本文是个人使用Python处理图片的电子笔记,由于水平有限,难免出现错漏,敬请批评改正. 更多精彩 ...

  7. Python合并两个有序列表

    提出要求: 合并两个有序列表 例如: L1=[23,45,67,77,78,80,90] L2=[4,11,26,33,42,61,80] 解决方法: 方法1:使用Python自带的extend()方 ...

  8. python合并两个有序列表_Python实现合并两个有序链表的方法示例

    本文实例讲述了Python实现合并两个有序链表的方法.分享给大家供大家参考,具体如下: 思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一 ...

  9. python合并两个列表并去重_python合并多个txt文件

    python合并多个txt文件 #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' # ...

  10. Python合并两个列表的方法

    浏览博客看到一个问题:如何合并两个列表,今天就来探讨一下. 方法一 最原始,最笨的方法,分别从两个列表中取出所有的元素,再放入新列表中就OK了.示例代码如下: list1 = [1,2,3] list ...

最新文章

  1. TVM示例展示 README.md,Makefile,CMakeLists.txt
  2. R语言广义线性模型函数GLM、glm函数构建泊松回归模型、模型中存在过离散(Overdispersion)、则将连接函数从possion函数替换为quasipoisson函数重新构建泊松回归模型
  3. XDU 翼讯账号算法
  4. FishC01 讲:我和 Python 第一次亲密接触
  5. 数据库外键示例 - 使用sqlite演示
  6. python编程大赛队名_团队作业1——团队展示选题
  7. 熊猫的python小课账号_学习python中的pandas有没有好的教程推荐?
  8. vb.net提取html网址,如何提取网页代码中指定内容
  9. js中将时间字符串转换为时间戳
  10. oracle union all 特别慢_Oracle查询性能优化
  11. FAQ宝典之Rancher Server
  12. 【双路E5装机】2016.7.31整机升级计划
  13. Process finished with exit code 0 报错解决方法
  14. shell脚本中一些日期的定义
  15. java枚举详解_Java枚举的使用详解
  16. 新版TP开发小额贷系统源码+可封装IOS安卓双端
  17. 微信公众平台的开发流程及其要点
  18. 什么是虚拟计算机集群
  19. qW3xT.2,解决挖矿病毒。
  20. js中单引号和双引号的使用区别

热门文章

  1. Eclipse安装好后快捷方式无法在桌面上打开,在Eclipse文件夹里可以正常打开。
  2. python大作业设计报告_python大作业.doc
  3. php制作特效文字,PPT制作文字特效 PPT特效文字制作教程
  4. 写给Python社群的第1课:初识Python,开篇知识点就选字符串吧~
  5. 华三服务器bios修改兼容模式,bios怎么设置兼容模式
  6. 微信浏览器跳转app解决方案
  7. Java 简单论文查重程序(SimHash+海明距离算法)
  8. 公共场合的wifi 靠不住
  9. 台式计算机检测不到无线网卡,台式机检测不到无线网卡怎么办
  10. PyTorch 报错:TypeError: Cannot handle this data type: (1, 1, 512), |u1 (已解决)