python处理pdf文件的程序_Python处理PDF文档-拆分合并
使用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文档-拆分合并相关推荐
- [附源码]计算机毕业设计Python作业查重系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- python识别颜色1007python识别颜色_python读取word文档识别字段颜色,解析字段
python版本3.7.3,读取的文档格式为.docx 文中带有简单注释 看不懂的百度网盘下载直接查看,更改运行里面的py文件 提取码:nngw import os import sys import ...
- python打开word并插入图片_Python操作word文档插入图片和表格的实例演示
前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: U ...
- [附源码]计算机毕业设计Python学生社团信息管理系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- [附源码]计算机毕业设计Python疫情防控管理系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- python读取docx中表格 图片_python 解析docx文档的方法,以及提取插入的文本对象和图片...
首先安装docx模块,通过pip install docx或者在docx官方链接上下载安装都可以 下面来看下如何解析docx文档:文档格式如下 有3个部分组成 1 正文:text文档 2 一个表格. ...
- [附源码]计算机毕业设计Python港口集团仓库管理系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- [附源码]计算机毕业设计Python微信点餐系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
- [附源码]计算机毕业设计Python个人博客系统(程序+源码+LW文档)
该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...
最新文章
- Redis底层实现--字符串
- 使用babel7 和 nodemon 进行node项目开发
- java高并发日志_高并发下log4j的性能瓶颈
- 【MCM-2017】2017年数学建模美赛题目原文及翻译-B (个人思路)
- 我的NVIDIA开发者之旅——Caffe教程(3)使用sklearn和caffe进行简单逻辑回归实践
- Excel电子表格操作
- 方差公式初三_九年级同步数学公式:方差公式(1)
- 阿卜杜拉国王科技大学的计算机,阿卜杜拉国王科技大学,沙特国王大学开设专业。...
- C++20,说说 Module 那点事儿
- 使用中文维基百科语料库训练一个word2vec模型
- Flink SQL搭建实时数仓DWD层
- Head First Design Patterns(深入浅出设计模式)-目录
- 医院客户关系管理/医院随访/CRM/HCRM
- Mac OS上JDK8更换JDK11
- Vue 添加时间轴 vue-light-timeline
- 《护理管理学》习题及答案-考试版
- mysql中的scn,oracle数据库SCN概念
- 进入数据标注组后我干了什么
- iOS 将图片文件打包为bundle资源
- Android 修改分区大小