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

Posted Python 集中营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 做一个天气查询系统(文末领取完整代码)!

欢迎关注作者公众号【Python 集中营】,专注于后端编程,每天更新技术干货,不定时分享各类资料!

以上是关于PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?的主要内容,如果未能解决你的问题,请参考以下文章

PDF一张纸打印四页时,怎么设置页码按照纸张数量计算

从PCAP文件中提取时间并另存为CSV文件

Python打开网页并另存为静态html怎么实现

如何在 BufferedImage 中使颜色透明并另存为 PNG

如何仅更新表的 2 列并另存为新记录?

生成 div 的图像并另存为