前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python玩转PDF文档的各种实用操作

Python玩转PDF文档的各种实用操作

作者头像
用户6888863
发布2020-06-02 17:23:16
9260
发布2020-06-02 17:23:16
举报
文章被收录于专栏:AI篮球与生活AI篮球与生活

今天小编为大家分享如何用Python来玩转PDF文档,例如提取当中的部分内容并导出,给PDF文件添加水印,合并多份PDF文件等等,而本文会着重用到PyPDF2模块来玩转PDF文档,以及tabula模块来对PDF文档中的表格数据进行读取

01

获取文档的基本信息

首先我们要用的是PdfFileReader方法,

在其中填入PDF文件的路径之后,便能通过获取一系列关于该PDF文件的相关信息,比方说

其中的documentInfo可以告诉你关于该本书的作者等相关信息,而numPages则可以体现出该PDF文件的具体页数

其中最重要的方法则是getPage(page_num)了,它能将具体某一页的内容以字符串的形式返回,当然其中要注意的是,它和我们平常所用的列表的索引值以0为开始值相类似,比方说要获取第7页的内容,则page_num应当填的是6,再用extractText来获取里面的内容,

02

获取文档的部分内容并保存

而当我们想将其中的部分内容提取出来单独保存成一个PDF文件时,步骤也是十分的简单,首先用PdfFileWriter来创建一个writer变量,

接着便是向其中添置内容,我们可以用到上面所讲的getPage(page_num)方法来放入第三页与第四页的内容

最后导出至一个独立的PDF文件

03

合并多个PDF文档

除了提取PDF文件中的部分内容,PyPDF2库也能帮助我们进行合并PDF文件,

首先遍历输入的paths,并为每个输入创建一个PDF阅读对象,然后遍历PDF文件中的所有页面,并使用addPage()将这些页面写入writer对象。当完成对列表中所有PDF的所有页面的写入后,将在末尾写入新的至新的结果中

04

添加水印

添加水印的目的在于它可以保护你的知识产权,表明文档的出处等等,我们可以使用PyPDF2当中的一些函数来达到此目的,其中的原理也非常容易理解,首先准备一份有且仅包含水印的PDF文件,通过两个PDF相合并的方式来为对象文档添加水印

05

给PDF文档加密

为PDF文档加密能够加强文档的安全性,而PyPDF2也提供了给PDF文件加密的方法,

在生成pdfwrite对象之后遍历输入文档的所有内容,并将这些页面中的内容写入至pdfwrite对象中,最后一步则是调用.encrypt(),并在其中填入自己要设定的密码即可

06

玩转PDF当中的表格数据

而当PDF文件中包含着表格数据时,tabula-py库能够很好地协助我们来处理其中的数据,首先通过pip install tabula-py来完成对该模块的安装,

在.read_pdf中我们可以通过筛选pages参数来选择我们要进行读取数据的页数,而area参数则表示在当前页面中要读取数据的区域,而,当然在表格当中我们依然可以看到字符串之间的空格用'\r'来代替,我们可以通过正则表达式来进行替换,而之后通过pandas来对表格进行统计分析也就轻松容易了许多。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 关于数据分析与可视化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档