事情的过程是这样的,因为现有的PDF文件太多,而我真正需要的内容只有十几页。每次都搜索不方便,而且需要发给自己的小伙伴太多,别人也不容易找到自己需要的内容,于是灵机一动,把需要的PDF提取出来保存作为PDF文件。于是就有了这个PDF页面提取操作,下面进入实战环节。项目中使用的库主要是PyPDF2,用于PDF格式文件的提取等操作,另外还需要一个os操作库,用于文件读写、另存为操作。【阅读全文】fromPyPDF2importPdfFileReader,PdfFileWriter#PDF格式文件操作importos#系统文件操作第一步:初始化PDF文件操作时的相关参数。#定义文件的操作路径(需要提取的原始文件路径)file_path='data.pdf'#定义目标文件路径(提取的文件路径)output_file_path=''#定义开始提取的页码begin='102'#定义结束提取页的页码end='113'#初始化提取文件路径output_file_path=output_file_path+f'({begin}~{end}).pdf'第二步:判断是否是待操作的原始文件是否存在,判断提取的页码是否在合理范围内。#判断pdf文件是否存在,存在则继续读取文件ifos.path.isfile(file_path):globalpdf_obj_readerpdf_obj_reader=PdfFileReader(file_path)#读取原文件的所有内容#判断页面是否存在数量在合理范围内。ifbegin<1orend>pdf_obj_reader.getNumPages():print('请输入合理的页码范围')else:exit(0)第三步:根据需要提取的pdf页码范围提取pdf内容并将其写入PDF文件写入流。#初始化文件写入流。globalpdf_obj_writerpdf_obj_writer=PdfFileWriter()#遍历读文件流,提取需要的部分写入文件写流。forpage_numinrange(begin-1,end):#由于读取的页面是从0开始的,所以起始页码减1pdf_obj_writer.addPage(pdf_obj_reader.getPage(page_num))#写入读取到的页码对应的内容满足条件Inputfilewritestream#最后将提取出来的文件流对象写入新定义的PDF文件withopen(output_file_path,'wb')asoutput_file_pdf:pdf_obj_writer.write(output_file_pdf)#写入指定文件至此时,整个PDF内容的提取和写入操作就完成了,感谢大家的支持。【过往花絮】浪漫乌龟,送给程序员自己的圣诞树!PyQt5GUI:百度图片下载器python3中zip()、zip(*)、list()的灵活转换(文末附源码)!pythonprint()函数的格式化字符串输出PyQt5GUI&&RequestsApi做一个天气查询系统(完整代码在文末获取)!
