写点什么

这篇文章教会我用 Python 读取 PDF 文件【收藏即会】

作者:梦想橡皮擦
  • 2022 年 9 月 27 日
    河北
  • 本文字数:1132 字

    阅读完需:约 4 分钟

⛳️ 实战场景

Python 工程师在日常的工作中,经常会碰到解析和处理 PDF 文件的情况,实战中需求主要分为如下情况:


  1. 提取 PDF 中的文字

  2. 将 PDF 中每页转换为图片

  3. word 转换为 PDF

  4. PDF 生成,编辑,导入导出

  5. PDF 在线渲染


除了最后一项需要前端配合以外,其余内容都可以直接在 python 端进行实现。


本次实战选择 pdfplumber 库进行学习,可以提前安装该库,不过有一点需要注意,该库主要用于读取 PDF 进行操作,写入和编辑无法实现,即本文学习一款专注于 PDF 内容提取的库。


> pip install pdfplumber -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码


pdfplumber 库具备如下特点:


  • 可以访问 PDF 对象中的任意元素详细信息;

  • 可以提取文本和表格,而且用法简单;

  • 集成了可视化调试。

⛳️ Python PDF 实战编码

下面可以编写 PDF 操作的基础代码。


import pdfplumber
with pdfplumber.open('./dddd.pdf') as pdf: for page in pdf.pages: print(page.extract_text())
# 每页打印一分页分隔 print('---------- 分页分隔 ----------')
复制代码


导入 pdfplumber 模块之后,使用 pdfplumber.open('./dddd.pdf') 打开本地 pdf 文件,然后通过 pdf.pages 遍历所有页,在通过页对象.extract_text() 方法,提取文本信息。


pdfplumber.open() 方法的签名如下所示:


pdfplumber.open("文件名", password = "密码", laparams = { "line_overlap": 0.7 })
复制代码


其中各参数描述如下:


  • file_name:文件名,必选参数;

  • password:PDF 的密码;

  • laparams:布局参数。


除此之外,如果希望读取 PDF,还可以使用 load() 方法,该方法也会返回 pdfplumber.PDF 类的实例。


pdfplumber.PDF 对象实例,主要有两个重要属性:


  • .metadata:从 PDF 的 Info 中获取元数据键 /值对字典。 通常包括“ CreationDate”,“ ModDate”,“ Producer”等;

  • .pages:包含 pdfplumber.Page 实例的列表,每一个实例代表 PDF 每一页的信息。


上文提及的 pdfplumber.Page 实例是 pdfplumber 的核心,后续对 PDF 的操作大量围绕该类的属性和方法实施,其重要属性如下所示:


  • page_number:页码顺序,第一页的序号是 1;

  • witdh:宽度;

  • height:高度;

  • .objects/.chars/.lines/.rects/.curves/.figures/.images:获取 PDF 页中的重要数据。


核心方法如下所示:


  • extract_text():提取页中的文本;

  • extract_words():提取所有单词及其相关信息;

  • extract_tables(): 提取页面的表格。


extract_text() 呈现结果


<kbd>



</kbd>


extract_words() 呈现结果


<kbd>



</kbd>


extract_tables() 呈现效果,由于 PDF 中无表格,所有每页得到的都是空!


<kbd>



</kbd>


📢📢📢📢📢📢💗 你正在阅读 【梦想橡皮擦】 的博客👍 阅读完毕,可以点点小手赞一下🌻 发现错误,直接评论区中指正吧📆 橡皮擦的第 <font color=red>716</font> 篇原创博客


发布于: 刚刚阅读数: 6
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
这篇文章教会我用 Python 读取 PDF 文件【收藏即会】_9月月更_梦想橡皮擦_InfoQ写作社区