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.
相关推荐
上班职业摸鱼人2 分钟前
python文件中导入另外一个模块这个模块
python
永远是夏天4 分钟前
Python面向对象编程(OOP)全教程:从入门到实战(附案例)
python
动感小麦兜15 分钟前
服务器搭建
linux·服务器·python
Pocker_Spades_A1 小时前
在家写的代码,办公室接着改?Jupyter通过cpolar实现远程访问这么玩
ide·python·jupyter
m5655bj1 小时前
使用 Python 高效复制 Excel 行、列、单元格
开发语言·python·excel
龙言龙论2 小时前
身份证信息批量处理系统:从入门到实战(附exe工具+核心源码)
数据库·python
m0_626535202 小时前
代码分析 长音频分割为短音频
javascript·python·音视频
Wpa.wk2 小时前
自动化测试环境配置-java+python
java·开发语言·python·测试工具·自动化
带刺的坐椅2 小时前
AI 应用工作流:LangGraph 和 Solon AI Flow,我该选谁?
java·python·ai·solon·flow·langgraph
工业互联网专业3 小时前
图片推荐系统_django+spider
python·django·毕业设计·源码·课程设计·spider·图片推荐系统