乐趣区

关于python:PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件

事件的通过是这样的,因为现有的 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_writer

pdf_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 做一个天气查问零碎(文末支付残缺代码)!

退出移动版