事件的通过是这样的,因为现有的PDF文件太多了而我真正须要的内容只有十几页。

每次查找不不便,另外须要发给本人的小伙伴也太多他人也不容易找到须要的内容,所以产生了一个想法就是把须要的PDF提取进去而后另存为一个PDF文件。

于是就有了这次的PDF页面提取操作,上面进入实战环节。

我的项目中用到的库次要是PyPDF2用于PDF格式文件的提取等操作,另外还须要os操作库用来做文件的读写、另存为操作。

【浏览全文】

from PyPDF2 import PdfFileReader, PdfFileWriter  # PDF格式文件操作import os  # 系统文件操作

第一步:初始化在PDF文件操作过程中的相干参数。

# 定义文件的操作门路(须要提取内容的原文件门路)file_path = 'data.pdf'# 定义指标文件门路(曾经提取好的文件门路)output_file_path = ''# 定义开始提取页的页码begin = '102'# 定义完结提取页的页码end = '113'# 初始化曾经提取好的文件门路output_file_path = output_file_path + f'({begin}~{end}).pdf'

第二步:判断须要操作的原始文件是否存在、判断须要提取的页码是否在正当的范畴内。

# 判断pdf文件是否存在,存在则持续读取文件if os.path.isfile(file_path):    global pdf_obj_reader    pdf_obj_reader = PdfFileReader(file_path)  # 读取原始文件所有内容# 判断一下页码是否在正当的范畴内。if begin < 1 or end > pdf_obj_reader.getNumPages():    print('请输出正当的页面范畴')else:    exit(0)

第三步:依据须要提取内容的pdf页码范畴提取pdf内容并写入PDF文件写入流。

# 初始化文件写入流。global pdf_obj_writerpdf_obj_writer = PdfFileWriter()# 遍历曾经读取的文件流,提取须要的局部并写入文件写入流。for page_num in range(begin - 1, end):  # 因为读取的页面是从0开始,所以开始页码进行减1操作    pdf_obj_writer.addPage(pdf_obj_reader.getPage(page_num))  # 将符合条件的页码对应内容写入文件写入流# 最初,将提取好的文件流对象写入到新定义好的PDF文件中with open(output_file_path, 'wb') as output_file_pdf:    pdf_obj_writer.write(output_file_pdf)  # 写入到指定文件

到此,整个PDF内容提取和写入的操作就实现了,感激大家的反对。

【往期精彩】

浪漫的turtle,送给程序员本人的圣诞树!

PyQt5 GUI:百度图片下载器(文末附源码)

python3中的zip()、zip(*)、list()之间的灵便转换!

python print() 函数的格式化字符串输入

PyQt5 GUI && Requests Api 做一个天气查问零碎(文末支付残缺代码)!