PDFPlumber使用入门

PDFPlumber是一个用于解析PDF的Python库,适用于提取文本、表格等信息。本文介绍了PDFPlumber的安装、命令行使用、Python包的API,特别强调了如何进行表格抽取和可视化调试,适合对PDF解析感兴趣的Python开发者。
摘要由CSDN通过智能技术生成

背景

最近需要一个工具来解析PDF文件,获取其文本内容、标题、表格等,在GitHub上发现了这个神仙工具,发现用起来还挺方便的。在这里做一个简单的介绍,帮助一些想入门的英文不好的 同学。

环境

macOS 10.14
PDFPlubmer v0.5.21
python>=3.5

教程开始

首先附上GitHub链接:https://github.com/jsvine/pdfplumber

应用场景

获取PDF中的每个文本字符、矩形和行的详细信息,以及可以进行表格提取和可视化调试。主要应用于机器生成的PDF上,而非扫描的pdf文档。

安装

可以直接使用pip进行python包的安装,执行指令:

pip install pdfplumber

之后运行python,若能成功导入该包即安装成功。

$ python3
Python 3.6.5 (default, Jun 17 2018, 12:13:06)
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdfplumber
>>> # 安装成功

命令行使用

这里提供一个官方的简单的使用样例

$ curl "https://cdn.rawgit.com/jsvine/pdfplumber/master/examples/pdfs/background-checks.pdf" > background-checks.pdf
$ pdfplumber < background-checks.pdf > background-checks.csv

执行完成后即可将一个pdf中的各种详细信息,包含每一个字符、线、表格等,导出到一个csv文件中。

可选参数

参数 描述
--format [format] csv or jsonjson格式返回更多信息; 它包含PDF级别的元数据(metadata)和每个页面的高度/宽度信息。
--pages [list of pages] 一个以空格分隔,以1索引开头的页面或带连字符的页面范围的列表。
例如1,11-15,它将返回第1、11、12、13、14和15页的数据。
--types [list of object types to extract] 选择为charannolinecurverectrect_edge
默认为charannolinecurverect

Python包

简单样例

import pdfplumber

with pdfplumber.open("path/to/file.pdf") as pdf:
    first_page = pdf.pages[0]
    print(first_page.chars[0])

读取PDF

pdfplumber提供了两种读取pdf的方式:

  • pdfplumber.open("path/to/file.pdf")
  • pdfplumber.load(file_like_object)

这两种方法都返回pdfplumber.PDF类的实例(instance)。
加载带密码的pdf需要传入参数password,例如:pdfplumber.open("file.pdf", password = "test")

pdfplumber.PDF类

处于最上层的pdfplumber.PDF类表示单个PDF,并且具有两个主要属性:

属性 描述
.metadata 从PDF的Info中获取元数据键 /值对字典。 通常包括“ CreationDate”,“ ModDate”,“ Producer”等。
.pages 一个包含pdfplumber.Page实例的列表,每一个实例代表PDF每一页的信息。

pdfplumber.Page类

pdfplumber.Page类是pdfplumber整个的核心,大多数操作都围绕这个类进行操作,它具有以下几个属性:

属性 描述
.page_number 页码顺序,从第一页的1开始,第二页为2,依此类推。
.width 页面宽度
.height 页面高度
.objects/.chars/.lines/.rects/
.curves/.figures/
  • 57
    点赞
  • 309
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值