网站建设推广小王,wordpress识图,洛可可设计公司估值,网站怎么做301PDF文件_合并与拆分PDF文档Pro版本 文章目录 PDF文件_合并与拆分PDF文档Pro版本前言一、要做成什么样子二、主要用到的函数三、基本思路1.引入库2.创建用户输入模块3.确定主框架 四、文档合并代码模块1.用户输入和函数调用2.引导用户输入文档信息3.合并文档内容4.命名新文档生成…PDF文件_合并与拆分PDF文档Pro版本 文章目录 PDF文件_合并与拆分PDF文档Pro版本前言一、要做成什么样子二、主要用到的函数三、基本思路1.引入库2.创建用户输入模块3.确定主框架 四、文档合并代码模块1.用户输入和函数调用2.引导用户输入文档信息3.合并文档内容4.命名新文档生成路径5.保存文档结束调用 五、文档拆分代码模块1.确定基本框架2.用户输入和前提准备3.每一页都拆分代码模块4.指定页码拆分代码模块4.1.用户输入和创建对象4.2.遍历暂存指定页码内容4.3.指定路径生成指定名称的新PDF 总结 前言 上一篇讲了pdf转文字的操作这篇我们接着讲如何去拆分和合并pdf文件。用过的应该知道在某软件上虽然可以用但是也是存在限制的文档页数过多就需要会员了。
那么怎么样才能不花钱这个很重要就能使用呢自己写一个(# ^ . ^ #) 一、要做成什么样子
任意数量、页数的pdf文档只要你电脑不冒烟~ ~ ~ ~可按顺序合并任意数量的pdf文档。可按顺序拆分任意页数的pdf文档。可任意截取拆分掉pdf文档的某一段。拆分的文档会按《原名第a页》、《原名第a页_第b页》命名合并的文档会提示你给它取个新名字。指定位置保存产生的新文件。
目前就想到这么些后续有新的点子我再往上搞
二、主要用到的函数
都是PyPDF2 库的东西。 一个是PdfReader用来读取pdf文档数据的二是PdfWriter用来写入前面读取到的数据。
三、基本思路
1.引入库 代码如下 from PyPDF2 import PdfWriter
import PyPDF22.创建用户输入模块 代码如下 print(请选择您要的操作1 合并 2 拆分 , end)
Go input()这里会提示用户是要合并还是拆分pdf文档输入不同的数字会进入到不同的模式中去。 end’ 的作用是不换行可以在文字提示的后面直接输入。 3.确定主框架 代码如下 if Go 1: #文档合并......
elif Go 2: #文档拆分......上面也提到了涉及到pdf的两个动作:合并和拆分。所以我这里采用if-----elif----的结构来处理。
接下来就是两个代码模块的编写了。这里我先写文档合并后写文档拆分。 四、文档合并代码模块
1.用户输入和函数调用 代码如下 #提示用户输入print(请输入需要合并的pdf文档个数, end)numbers_pdf int(input())#函数调用merger PdfWriter()需要合并几个文档就输入数字几就ojbk。 这里调用的函数下面会用到。PdfWriter 对象通常被用来合并PDF文件或者创建新的PDF文档。 2.引导用户输入文档信息
代码如下 #创建空列表用来存储pdf名称list_pdf []#进行相应次数的遍历循环for number_pdf in range(numbers_pdf):#提示用户按照固定格式输入print(f请按顺序输入第 {number_pdf1} 个pdf例子E:\BaiduNetdiskDownload\你好.pdf, end)old_pdf input()#用户每次输入都会被添加到列表当中list_pdf.append(old_pdf)这段代码的意思是你合并几个文档程序就会提示你几次输入文档信息。 需要注意的是输入的先后顺序也代表了后续合并后内容的先后顺序。 3.合并文档内容
代码如下 for pdf in list_pdf:merger.append(pdf)代码很少意思就是遍历刚才用户输入的文档信息逐个进行合并。 4.命名新文档生成路径
代码如下 #提示输入文档名称print(已合并完请输入新文件名称例子aaa不用添加扩展名, end)new_pdf_name input()# 指定保存 .pdf 文件的完整路径和名称output_dir D:/ # 替换为您的实际输出目录output_file_name f{new_pdf_name}_合并.pdfoutput_path output_dir output_file_name第一段代码是提示用户输入新文档的名字下面会用到。 第二段代码的意思是我先指定一个路径然后生成文档的名称 new_pdf_name_合并.pdf最后对它俩进行字符串拼接这样后面才能根据output_path信息在指定路径下保存pdf文档。 5.保存文档结束调用
代码如下 merger.write(output_path)print(合并好了去查收吧)merger.close()提示合并好了。然后就去指定目录查看就行了。
合并文档到这里就结束了。 五、文档拆分代码模块
将拆分分为两部分一是每一页都拆出来形成一个新文档二是有用户指定范围形成新文档。所以在这里又会用到if----elif—结构相当于嵌套里的嵌套。
这里我会先写每一页都拆后写指定范围。
1.确定基本框架 代码如下 .......... #用户输入和前提准备if split 1: #每一页都拆......elif split 2: #指定范围拆......上面也刚说了这里就不废话了。 2.用户输入和前提准备 代码如下 #提示用户输入要拆分的PDF文档print(请输入您要查分的文件例子E:\BaiduNetdiskDownload\你好.pdf, end)chaifen_pdf input()open_pdf open(chaifen_pdf, rb) #以二进制形式打开文档read_pdf PyPDF2.PdfReader(open_pdf) #读取上面打开的PDF文件内容get_pdf_pages len(read_pdf.pages) #通过read_pdf获取PDF的总页数print(f该文件共有{get_pdf_pages}页)#提示用户选择拆分模式print(全部拆分请输入1 指定位置查分请输入2 , end)split input()
先是提示用户输入要拆分的文档然后程序会打开并读取文档内内容告诉我们文档总共有多少页最后是提示用户选择哪种模式拆分。 我就不细说了代码注释写的很明白。 3.每一页都拆分代码模块 代码如下 #遍历文档的每一页for get_pdf_page in range(get_pdf_pages):#读取文档当前遍历的页page read_pdf.pages[get_pdf_page]# 创建一个新的PdfWriter对象pdf_writer PdfWriter()# 将当前页添加到新的PdfWriter对象中pdf_writer.add_page(page)# 获取用户输入的文件名不包括路径pdf_file_name chaifen_pdf.split(\\)[-1] # 使用 \\ 分隔符 去掉路径pdf_base_name pdf_file_name.split(.)[0] # 去掉扩展名# 指定保存 .pdf 文件的完整路径和名称output_dir D:/ # 替换为您的实际输出目录output_file_name f{pdf_base_name}_第{get_pdf_page 1}页.pdfoutput_path output_dir output_file_namepdf_writer.write(output_path)pdf_writer.close()print(拆分好了快去看一下吧。)
由于基本上都是在for_in range结构的循环下我就一块写了要不让分开写很容易看混。 整体上分为五部分
第一部分读取文档当前遍历的页然后创建一个新的PdfWriter对象最后将当前页添加到新的PdfWriter对象中就是生成一页的文档三者缺一不可。如果没有PdfWriter对象会出现第n份文档有n页内容。第二部分和第三部分可以看我上一个文档的《第四大段第5小节》有详细解释。这是链接https://blog.csdn.net/weixin_57061292/article/details/134790966第四部分按照前几分部分的设置进行文件的保存还有结束函数的调用有始有终嘛。第五部分友好提示出现上面那几个字就代表搞定了。 4.指定页码拆分代码模块
4.1.用户输入和创建对象 代码如下 print(请输入开始页 , end)start_pages int(input())print(请输入结束页 , end)end_pages int(input())# 创建一个新的PdfWriter对象pdf_writer PdfWriter()
两部分一是引导用户输入需要把从哪一页到哪一页的内容拆出来二是函数的调用没啥好说的这是主力。 4.2.遍历暂存指定页码内容 代码如下 for get_pdf_page in range(start_pages-1, end_pages):page read_pdf.pages[get_pdf_page]# 将当前页添加到新的PdfWriter对象中pdf_writer.add_page(page)
这个结构用过很多次了就不赘述了。 意思就是遍历我们选中的页先把它们暂存起来留到到后面用。 4.3.指定路径生成指定名称的新PDF 代码如下 # 获取用户输入的文件名不包括路径pdf_file_name chaifen_pdf.split(\\)[-1] # 使用 \\ 分隔符 去掉路径pdf_base_name pdf_file_name.split(.)[0] # 去掉扩展名# 指定保存 .pdf 文件的完整路径和名称output_dir D:/ # 替换为您的实际输出目录output_file_name f{pdf_base_name}_第{start_pages}_{end_pages}页.pdfoutput_path output_dir output_file_namepdf_writer.write(output_path)pdf_writer.close()print(拆分好了快去看一下吧。)
各位同志看不懂的话。这里请一定要参考 《 3.每一页都拆分代码模块》 和我的上一篇博客这是链接https://blog.csdn.net/weixin_57061292/article/details/134790966 总结
这就是PDF拆分和合并的全部内容了看看这篇的反馈吧。有需要的话。后面我再找找PDF还有哪些操作大家还常用 给大家写出来。