使用Python处理PDF文档。将需要处理的PDF文档与处理程序放到一个新建的文件夹中。运行程序。

S模式,将单个PDF文档拆分到单页,并以数字命名。

image.png

C模式,合并文档,需要提前将文档提前按照希望合并的顺序命名成数字,数字名称无需连续,程序是从小到大依次拼接各个PDF文档,最终输出 合并成功.pdf。

image.png

通过组合使用S和C模式,在PDF中删除指定页面:先S模式拆分文档,删除不需要的文件,使用C模式合并剩余文件,即可实现PDF指定页面的删除。

通过组合使用S和C模式,在PDF中插入指定页面:先S模式拆分文档,并将需要插入的PDF文档改成前后文件之间的数字,然后使用C模式合并文档。

参考链接: https://zhuanlan.zhihu.com/p/98626155

答主写的单模块非常详细。我做了修改,将PDF文档的识别自动化了,去除了逐个输入名字的过程,对全新手会友好写。将合并和拆分集成到了一起。

exe打包了,在github:https://github.com/fangxiang0727/PDF_combine_split

image.png

百度网盘:https://link.zhihu.com/?target=https%3A//pan.baidu.com/s/1y4xZX5T4gbc3pMtBdcbZeA

提取码: 3msf

# merge and split pdf

from os import listdir, getcwd

from PyPDF2 import PdfFileReader, PdfFileWriter

def merge_pdfs(paths, output):

pdf_writer = PdfFileWriter()

for path in paths:

pdf_reader = PdfFileReader(path)

for page in range(pdf_reader.getNumPages()):

# 把每张PDF页面加入到这个可读取对象中

pdf_writer.addPage(pdf_reader.getPage(page))

# 把这个已合并了的PDF文档存储起来

with open(output, 'wb') as out:

pdf_writer.write(out)

def list_all_pdfs():

#将当前文件夹中所有的PDF文件枚举出来做成列表

xlist=listdir(getcwd())

pdflist=[]

for ele in xlist:

if '合并成功' not in ele and '.pdf' in ele:

pdflist.append(ele)

#按照数字大小将文件名字做成顺序列表,方便后续按照数字顺序逐个合并文件。

def takeNo(elem):

x=elem.split('.')

return int(x[0])

pdflist.sort(key=takeNo)#升序排列文件名称

return pdflist

def split_pdf(path):

pdf = PdfFileReader(path)

for page in range(pdf.getNumPages()):

pdf_writer = PdfFileWriter()

pdf_writer.addPage(pdf.getPage(page))

output = f'{page}{0}.pdf'

with open(output, 'wb') as output_pdf:

pdf_writer.write(output_pdf)

if __name__ == '__main__':

mode_selection=input('模式选择, C代表合并操作,S 代表拆分成单页:\n').upper()

if mode_selection=='C':

input('确保所有文件都是数字命名,程序会按照数字顺序逐个拼接PDF文档,并输出 合并成功.pdf 作为最终文档,回车确认,需要改名关掉本窗口即可')

paths =list_all_pdfs()

print(paths)

merge_pdfs(paths, output='合并成功.pdf')

input('合并完毕,回车退出')

if mode_selection=='S':

print('程序会将指定的pdf文件拆分到单页,并以数字命名')

path =input('输入需要拆分的PDF文件名字,包括后缀,例如 XXX.pdf,回车确认\n')

split(path)

input('合并完毕,回车退出')

python处理pdf文件的程序_Python处理PDF文档-拆分合并相关推荐

  1. [附源码]计算机毕业设计Python作业查重系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  2. python识别颜色1007python识别颜色_python读取word文档识别字段颜色,解析字段

    python版本3.7.3,读取的文档格式为.docx 文中带有简单注释 看不懂的百度网盘下载直接查看,更改运行里面的py文件 提取码:nngw import os import sys import ...

  3. python打开word并插入图片_Python操作word文档插入图片和表格的实例演示

    前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: U ...

  4. [附源码]计算机毕业设计Python学生社团信息管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  5. [附源码]计算机毕业设计Python疫情防控管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  6. python读取docx中表格 图片_python 解析docx文档的方法,以及提取插入的文本对象和图片...

    首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...

  7. [附源码]计算机毕业设计Python港口集团仓库管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  8. [附源码]计算机毕业设计Python微信点餐系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  9. [附源码]计算机毕业设计Python个人博客系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

最新文章

  1. Redis底层实现--字符串
  2. 使用babel7 和 nodemon 进行node项目开发
  3. java高并发日志_高并发下log4j的性能瓶颈
  4. 【MCM-2017】2017年数学建模美赛题目原文及翻译-B (个人思路)
  5. 我的NVIDIA开发者之旅——Caffe教程(3)使用sklearn和caffe进行简单逻辑回归实践
  6. Excel电子表格操作
  7. 方差公式初三_九年级同步数学公式:方差公式(1)
  8. 阿卜杜拉国王科技大学的计算机,阿卜杜拉国王科技大学,沙特国王大学开设专业。...
  9. C++20,说说 Module 那点事儿
  10. 使用中文维基百科语料库训练一个word2vec模型
  11. Flink SQL搭建实时数仓DWD层
  12. Head First Design Patterns(深入浅出设计模式)-目录
  13. 医院客户关系管理/医院随访/CRM/HCRM
  14. Mac OS上JDK8更换JDK11
  15. Vue 添加时间轴 vue-light-timeline
  16. 《护理管理学》习题及答案-考试版
  17. mysql中的scn,oracle数据库SCN概念
  18. 进入数据标注组后我干了什么
  19. iOS 将图片文件打包为bundle资源
  20. Android 修改分区大小

热门文章

  1. 开发微信小程序的作用
  2. 使用 PyGame 显示图像的四种方案
  3. IOS获取屏幕分辨率
  4. 2022年自考专业考试(计算机应用)计算机系统结构练习题
  5. 使用百度地图AndroidSDK
  6. 《传奇之王》风波不断 编剧替柳云龙打抱不平_0
  7. 用MySQL数据库来处理中英文取首字母排序
  8. 淘宝网禁售无证食品和保健品 问题商品将被屏蔽
  9. BIDI单纤双向光模块
  10. 中考计算机考试评分标准,2016年中考英语作文的评分标准及评分细则(最新)