python常用PDF库总结

使用Python操作PDF:常用PDF库总结

PDF(Portable Document Format)是一种便携文档格式,便于跨操作系统传播文档。PDF文档遵循标准格式,因此存在很多可以操作PDF文档的工具,Python自然也不例外。本文从功能、开源协议及社区活跃度三方面对比7个常用的Python第三方库,以便根据具体需求选择合适的库。

常见PDF库
PyPDF2 (已不再维护,继任者PyPDF4)
由于PyPDF2似乎更知名,故本文以其作为条目列出。

PyPDF、PyPDF2及PyPDF4的渊源[1]。
pdfrw
自身不能创建新内容,但是集成了ReportLab,可以兼容ReportLab生成新页面。

ReportLab
商业版的开源版本,专业创建PDF内容如文本、图表等。

pikepdf
基于C++的QPDF,对标PyPDF2和pdfrw;偏向PDF底层。

pdfplumber
基于pdfminer.six,除了读取文本、形状(矩形、直线/曲线)外,还能解析表格。

几个提取PDF表格的Python库的对比[2]。
pdfminer.six
pdfminer的社区维护版(pdfminer自2020年起不再积极维护)。

PyMuPDF
基于mupdf,功能全面,并以处理速度著称[3]。

对比
本文将Python操作PDF的能力从大粒度上分成提取内容、操作页面和创建内容三方面。前两者分别是针对已经存在的PDF文档的读和写操作,最后一项从内容上创建新文档。

提取内容:如文本、图片、元信息
操作页面:特指操作已经存在的页面,例如分割、合并、裁剪、旋转等
创建内容:指创建或修改页面内容,例如文本、图片、形状考虑到时效性,以下对比列出了撰写本文时相应的最新版本。

[公式]

总结
PyPDF2系列、pdfrw及pikepdf专注对已经存在的PDF的操作(分割、合并、旋转等),前两者基本处于停止维护的状态。
pdfplumber及其依赖pdfminer.six专注PDF内容提取,例如文本(位置、字体及颜色等)和形状(矩形、直线、曲线),前者还有解析表格的功能。
ReportLab专注PDF页面内容(文本、图、表等)的创建。
PyMuPDF功能全面且速度快,但是GPL v3的开源协议对商用不太友好。
最后以下图结束本文。

PDF库功能对比

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值