pdf相关的python库

本文说明

最近接触pdf信息抽取,使用了几个操作pdf的python库,这里简单纪录下。

pypdf

pypdf是一个免费的、开源的纯python PDF库,能够拆分、合并、裁剪和转换PDF文件的页面。它还可以为PDF文件添加自定义数据、查看选项和密码。pypdf也可以从pdf中检索文本和元数据。

总结:主要用来修改pdf,特别是拆分和合并,使用下来很方便。

PyPDF2在3.0.1版本后不再维护了,这个项目变成 了pypdf。

安装:pip install pypdf

pdfplumber

该库可以从pdf中提取文本和表格。支持可视化调试功能。

支持文本提取的库不少,但是支持表格提取的并不算多。

提取表格的效果我试了下,勉强能用,错误不少,可能需要尝试不同的提取设置选项才能得到较好的效果。

安装方法:pip install pdfplumber

pdfservices-python-sdk

这是adobe官方pdf转换服务的sdk库,需要在adobe网站注册账号才能用。少量使用免费,大量使用收费。

我试了下它的pdf表格提取功能,效果比较惊艳,比开源库的效果要好不少。但是大量调用收费,这也是个缺点。

adobe官方有个展示pdf信息抽取的可视化页面,用于可视化展示它的api进行信息抽取的效果:https://acrobatservices.adobe.com/dc-visualizer-app/index.html

安装方法:pip install pdfservices-sdk

###PyMuPDF

这个库的功能类似pypdf和pdfplumber的集合体,既可以对pdf进行编辑,又可以提取pdf信息。但是不支持提取表格。

我没使用过这个库,但是看到h2ogpt这个项目在做文档知识抽取的时候用PyMuPDF提取文本内容,就写下来了。

比较

这里摘抄pdfplumber的github说明里的一段比较文字:

python 复制代码
pdfminer.six provides the foundation for pdfplumber. It primarily focuses on parsing PDFs, analyzing PDF layouts and object positioning, and extracting text. It does not provide tools for table extraction or visual debugging.

PyPDF2 is a pure-Python library "capable of splitting, merging, cropping, and transforming the pages of PDF files. It can also add custom data, viewing options, and passwords to PDF files." It can extract page text, but does not provide easy access to shape objects (rectangles, lines, etc.), table-extraction, or visually debugging tools.

pymupdf is substantially faster than pdfminer.six (and thus also pdfplumber) and can generate and modify PDFs, but the library requires installation of non-Python software (MuPDF). It also does not enable easy access to shape objects (rectangles, lines, etc.), and does not provide table-extraction or visual debugging tools.

camelot, tabula-py, and pdftables all focus primarily on extracting tables. In some cases, they may be better suited to the particular tables you are trying to extract.
相关推荐
天赐范式7 小时前
天赐范式第183天:让选择开始生效——育种者方程与选择生效条件
python·数字生命·天赐范式·动态运行时·育种者方程·选择压力·遗传力
benchmark_cc7 小时前
批量行情返回后,怎样把请求失败的股票和正常数据分开?
python·数据分析·pandas·量化交易·股票数据·quantdash
web打印社区8 小时前
Windows 网页静默打印设置步骤:客户端、防火墙与联调清单
开发语言·前端·javascript·chrome·pdf·ecmascript
y = xⁿ8 小时前
关于Agent工程落地
前端·人工智能·python
开开心心就好8 小时前
图片白底怎么去掉?抠图工具抠完背景透明
java·服务器·开发语言·pdf·ocr·散列表·启发式算法
web打印社区8 小时前
JS 静默打印怎么做:纯前端为什么不行,以及最小可跑通写法
开发语言·前端·javascript·websocket·网络协议·http·pdf
小小张说故事8 小时前
pip 安装慢、超时、报错?一份国内源配置 + 9 个高频报错对照表
python
web打印社区8 小时前
HTML5 静默打印:前端页面怎么调用打印机且尽量不弹窗
前端·javascript·vue.js·pdf·html·html5
在世修行8 小时前
干货:长任务反馈
python·长任务
东方芷兰8 小时前
Agent 技术摘要 05 —— BP、SaaS、B2B、C2B、B2C
java·笔记·python·语言模型·自然语言处理